使用Lucene.NET在单令牌字段中搜索

时间:2013-11-07 12:53:32

标签: search lucene.net lucene exact-match

我使用Lucene.NET 3.0.3索引word,excel等文档的内容以及每个文档的一些自定义字段。
如果我将名为“title”的字段索引为 Field.Index.NOT_ANALYZED ,则Lucene-Index以正确的形式存储该字段。孔标题存储在单个标记中。这就是我想要的。

e.g。 文件标题是“Lorem ipsum dolor”
Lucene指数中的字段:“Lorem ipsum dolor”

如果我在此字段中使用精确搜索进行搜索,则无法获得任何结果 我的searchterm看起来像:标题:“Lorem ipsum dolor”
为了搜索我使用相同的StandardAnalzer。

为什么我找不到该文件?

1 个答案:

答案 0 :(得分:0)

StandardAnalyzer对空白以及其他分隔符很敏感。也就是说,它将搜索词标记为三个标记:

( Lorem, ipsum, dolor )

但您使用title为字段Field.Index.NOT_ANALYZED编制索引,因此上述三个标记中没有一个可以匹配此字段中的单个标记:

( Lorem ipsum dolor )

使用KeywordAnalyzer,将整个字段值标记为单个标记。与往常一样,您需要使用相同的分析器进行索引和搜索。

相关问题