StandardAnalyzer
对白道和其他定界人士很敏感。也就是说,它将搜索术语归为三个令牌:
( Lorem, ipsum, dolor )
但是你索引字段 title
使用 Field.Index.NOT_ANALYZED
因此,上面的三个令牌都无法匹配该领域的单个令牌:
( Lorem ipsum dolor )
利用 KeywordAnalyzer
, ,将整个字段值作为单个令牌化。与往常一样,您需要使用相同的分析仪进行索引和搜索。
题
我使用lucene.net 3.0.3来索引每个文档的文字,excel-等。文档和一些自定义字段。
如果我索引一个名称的字段 “标题” 作为 field.index.not_analyzed Lucene-Index以正确的形式存储了该字段。孔标题存储在一个令牌中。这就是我想要的。
例如 文件标题是“ Lorem Ipsum Dolor”
Lucene-Index中的字段:“ Lorem Ipsum Dolor”
如果我在此字段中使用精确搜索进行搜索,则不会获得结果。
我的搜索项看起来像: 标题:“ Lorem Ipsum Dolor”
为了搜索,我使用相同的standardanalzer。
为什么我找不到文档?
解决方案
StandardAnalyzer
对白道和其他定界人士很敏感。也就是说,它将搜索术语归为三个令牌:
( Lorem, ipsum, dolor )
但是你索引字段 title
使用 Field.Index.NOT_ANALYZED
因此,上面的三个令牌都无法匹配该领域的单个令牌:
( Lorem ipsum dolor )
利用 KeywordAnalyzer
, ,将整个字段值作为单个令牌化。与往常一样,您需要使用相同的分析仪进行索引和搜索。