所以我的Lucene索引文档中有一个名为“Field1”的字段(用于所有意图和目的)。
当我打开Luke并浏览文档时,我看到大多数文档都有此字段。但是当我切换到搜索标签时,我输入Field1:parameterValue
我得到零搜索结果。
在进行索引时,对于文档,我有
doc.Add(new Field("Field1", field1, Field.Store.YES, Field.Index.ANALYZED));
为什么我的字段无法搜索?顺便说一句,我找不到任何关于Luke的文档,它解释了文档记录中的“IdfpTSVopNLB#”列。我认为这些信息可能有用,因此对于包含此字段的其中一个记录,列值为IdfpTS---N---
且“标准”列为4.0
答案 0 :(得分:2)
" IdfpTSVopNLB#" field是一组标志。你应该在卢克看到一把钥匙:
我猜你的搜索失败的原因是因为你没有考虑你的分析。例如,对于您的示例查询:Field1:parameterValue
,如果该字段由StandardAnalyzer分析(并且查询不是分析器或分析关键字),则您将得不到任何结果。这是因为" parameterValue"分析器可能会小一些,因此实际的可搜索项将是" parametervalue"而是。
在搜索选项卡中,您应该看到一个位置,用于选择Luke用于查询解析的分析器。如果您使用与数据索引相同的分析器,您可能会看到更好的结果。
答案 1 :(得分:-1)
事实证明,这是正确的方法。我只需要删除整个索引并从头开始重建它以获取新值。它不会自动更新现有索引。