2012-12-10 123 views
2

我有我的數據庫中的關鍵字列表。例如:Java程序,Php程序等。我使用Lucene爲這些關鍵字編制索引。當我搜索比關鍵字(索引詞)更長的文本時,如何獲得匹配?例如:我正在尋找「我的Java程序比你的更好」。我期望一場比賽,因爲我已經編制了一個keywod「Java程序」?如何有效地使用Lucene做到這一點?如果不是Lucene,我還有什麼可以用來做這種工作的?Lucene反向搜索

請注意,我不想匹配獨立關鍵字「java」和「program」。我想要一個「Java程序」上的匹配(就像我索引的一個關鍵字一樣)。

謝謝。

+0

你可以看看[MemoryIndex](http://lucene.apache.org/core/old_versioned_docs/versions/3_0_0/api/contrib-memory/org/apache/lucene/index/memory/MemoryIndex.html ) –

+0

爲什麼不使用短語搜索? –

回答

2

如果你有一個StandardAnalyzer索引關鍵字時,你可以很有效地查詢字符串像查詢他們這

My Java Program is better than yours. 

其中,除非引用或類似的東西,有效地解釋到7個查詢(少刪除停用詞後),所以它會匹配時,尋找「java」,當尋找「程序」。

+0

對不起。我不想單獨匹配「Java」和「程序」。我想匹配我索引的確切關鍵字「Java程序」。謝謝。 – M99

+0

如果你有默認的排序(相關性),那麼你的文檔被編入「Java程序」的分數將高於例如只有「Java」的文檔。完全匹配將會更有效率。 –

+0

我正在尋找一個是或否如果我選擇最佳匹配,如何能夠檢查它是否匹配整個「java程序」與「java」(或)「程序」?謝謝。 – M99