Lucene索引字段不可搜索

问题描述:

因此,我在我的Lucene索引文档中名为“Field1”(用于所有意图和目的)中有一个字段。Lucene索引字段不可搜索

当我打开Luke并浏览文档时,我看到大部分文档都有这个字段。但是,当我切换到搜索选项卡,并且我输入Field1:parameterValue时,我得到零搜索结果。

在做索引,对文档,我有

doc.Add(new Field("Field1", field1, Field.Store.YES, Field.Index.ANALYZED));

为什么我的领域不能被搜索?顺便说一下,我找不到Luke上的任何文档,它解释了文档记录中的“IdfpTSVopNLB#”列。我认为这些信息可能有用,因此对于具有此字段的记录之一,列值为IdfpTS---N---,“Norm”列为4.0

“IdfpTSVopNLB#”字段是一组标志。你应该看到一个键将其在卢克:

Luke flags key location

我猜你的搜索是失败的原因,是因为你没有把你的分析考虑。例如,对于您的示例查询:Field1:parameterValue,如果该字段是由StandardAnalyzer分析的(并且该查询不是分析器或被关键字分析过),则不会得到任何结果。这是因为“parameterValue”会被分析器小写,所以实际可搜索的术语应该是“parametervalue”,而不是。

在搜索选项卡中,您应该看到一个地方为Luke选择一个分析器用于查询分析。如果您使用用于索引数据的相同分析仪,则可能会看到更好的结果。

+0

可爱的小宝贝耶稣,我怎么想的?谢谢! – Bardicer

+0

仍然不清楚哪些索引选项可能导致dfp的空标志(或破折号)。老版本的卢克只有我(截图中的答案)。较新的4个标志Idfp(在原始问题中)解释为I - 索引(docs,freqs,pos)。浏览现有索引我只能看到每个字段的Idfp。 – MicMit

+0

@MicMit - 正如它所说的,“我”如果它被索引,如果是,索引,文档,频率或位置。如果一个字段使用文档和频率索引,您会看到“Idf-”。索引全部三种文档,文档,频率和位置是最典型的(即默认行为)。 – femtoRgon

事实证明,这是做到这一点的正确方法。我只需要删除整个索引,并重新从头开始重新获取新值。它不会自动更新现有索引。

+0

我欣赏多个降价。糟糕的是,downvoters无法提供任何东西来捍卫他们对这个话题缺乏想法。 – Bardicer