2016-09-21 140 views
1

因此,我在我的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

回答

2

「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

-1

事實證明,這是做到這一點的正確方法。我只需要刪除整個索引,並重新從頭開始重新獲取新值。它不會自動更新現有索引。

+0

我欣賞多個降價。糟糕的是,downvoters無法提供任何東西來捍衛他們對這個話題缺乏想法。 – Bardicer