我剛剛在lucene.net中實現了一個詞組autosuggest系統。
基本上,lucene的java版本在其中一個contrib文件夾中有一個shinglefilter,它將一個句子分解爲所有可能的短語組合。不幸的是,lucene.nets contrib過濾器還沒有完全實現,所以我們沒有過濾器。
但是,只要版本相同,用lucene.net就可以讀取用java編寫的lucene索引。所以我做了以下事情:
在lucene.net中使用spellcheck.IndexDictionary方法在jake scotts鏈接的「你的意思」部分中列出了一個法術索引。請注意,僅創建單個單詞的拼寫索引,而不是短語。
然後我創建了一個java應用程序,它使用木瓦過濾器創建我正在搜索的文本的短語並將其保存在臨時索引中。
然後,我在dotnet中編寫了另一個方法來打開這個臨時索引,並將每個短語作爲行或文檔添加到已包含單個單詞的拼寫索引中。訣竅是確保您添加的文檔與其他拼寫文檔具有相同的格式,因此我剔除了lucene.net項目中拼寫檢查代碼中使用的方法並編輯了這些文檔。
一旦你完成了這個工作,你可以調用spellcheck.suggestsimilar方法,並傳遞一個拼錯的短語,它會返回給你一個有效的建議。
嗨,你可以請提供一些代碼示例,我試圖實現相同的,並有麻煩遵循你的指導。 – Naz 2012-03-08 18:37:11
http://codingsmith.co.za/lucene-net-phrase-suggestion/ 納茲只爲你。希望這是有道理的 – spaceman 2012-03-13 17:55:52
我能夠在您的博客文章之後實現多詞組自動建議。它看起來像最新的Lucene.net + contrib包含了shinglefilter,所以我可以通過擴展SpellChecker類來完成所有這些。再次感謝你的幫助。 – Naz 2012-03-17 15:24:26