2009-12-12 63 views
1

我正在構建一個基於Java Lucene的搜索系統,此外還添加了一定數量的元字段,其中一個元字段是sourceId字段,它表示條目來自哪裏。Lucene按數值搜索

我現在試圖從特定源檢索所有文檔,但索引似乎無法找到它們。但是,如果我搜索通配符值,則返回的文檔都具有該字段的正確值。

我使用Lucene的查詢是相當簡單,基本上index-source-id:1但未能返回任何命中,如果我搜索content:a*我得到幾十份文件,所有這一切,當記者問,返回值1index-source-id價值,這是正確的。

任何想法?

回答

1

我只使用PHP端口,但是,你有沒有檢查過你正在使用的文本分析器?這FAQ似乎表明,就像PHP版本一樣,您需要使用不會刪除數字的不同數字。
您可以找到analyzers here

的列表可以肯定的是,您已將該ID設置爲可索引的?

+0

我已經設置ID爲可索引的,是。 我一直在尋找一個分析儀的列表,但找不到一個說它特別處理數字的人,看起來StandardAnalyzer的確如此,我認爲這已被棄用,所以也許這可能會有所幫助。 – Martin

+1

重建索引,然後使用StandardAnalyzer而不是SimpleAnalyzer進行搜索,這樣做的竅門! – Martin

+1

爲了將來的參考,你不想分析(也不標記化)ID字段,因爲它們應該是天生的原子,並且愛因斯坦在曼哈頓計劃中告訴我們他的朋友們,分裂原子並不是一件好事。 .. – Esko