我的Java EE應用程序使用Lucene 4.在Lucene索引中,我有1,000萬個人的全名。當我使用搜索時,Lucene會返回不同的結果。相同的應用程序在Windows上的開發環境中工作正常,在AIX上測試環境,但在生產服務器上,Lucene搜索返回的記錄少得多。同樣的查詢返回800個開發結果和20個生產結果。我們將在產品上嘗試AIX和Red Hat,但仍然沒有運氣。Lucene搜索返回不同的結果
我將Lucene索引文件從生產環境複製到開發環境,並搜索了相同的查詢和相同的應用程序:在我的環境中,所有工作正常,有800個結果。我開始調試應用程序,將Lucene查詢複製爲文本,並在我的環境中使用Luke的查詢 - 有800個結果。生產負載很高,我會盡量加載開發環境,但是Lucene工作穩定並且總是返回800.
哪裏可以找到問題的根源?
這通常是由於不同的分析儀,特別是如果你在Java和.net之間混合。您是否可以驗證您是否在所有環境中使用相同的分析儀,具有相同的設置和停用詞? – sisve
在所有環境中都有相同的源代碼,但JRE的版本不同。索引更新時,使用StandardAnalyzer。在查詢過程中,未在源代碼中明確指示分析器。我會嘗試在Luke中使用一些不同的分析器進行查詢,但總會有800個結果 – bobzer
您在哪裏將索引存儲在文件系統或內存中? – Yogesh