回答
你應該查看contrib中的SpellChecker模塊。它是Java lucene的SpellChecker模塊的一個端口,所以它的documentation應該是有幫助的。
(從的javadoc :)
實例應用:
import org.apache.lucene.search.spell.SpellChecker;
SpellChecker spellchecker = new SpellChecker(spellIndexDirectory);
// To index a field of a user index:
spellchecker.indexDictionary(new LuceneDictionary(my_lucene_reader, a_field));
// To index a file containing words:
spellchecker.indexDictionary(new PlainTextDictionary(new File("myfile.txt")));
String[] suggestions = spellchecker.suggestSimilar("misspelt", 5);
AFAIK Lucene支持接近的搜索,這意味着,如果你使用類似:
領域:stirng〜0.5
(這是個波浪線符號)
將匹配 「弦」。浮點數是如何「寬容」的搜索,其中1.0是完全匹配和0.0匹配的一切(有點)。
不同的解析器會實現這個不同的方式。
接近搜索比模糊搜索(stri *)慢得多,所以請謹慎使用它。就你而言,人們會假設,如果你在常規搜索中找不到匹配項,就嘗試使用鄰近搜索來查看你找到的內容,並根據結果以某種方式呈現「你的意思」。
由於性能原因,對於緩存這種查找非常常見的錯誤拼寫可能很有用。
Google的「你的意思是?」是(可能;當然他們是祕密的)通過諮詢他們的查詢日誌來實現。查看搜索您正在處理的查詢的用戶是否搜索到了與之後非常相似的內容;如果是這樣,這表明他們犯了一個錯誤,並意識到他們應該尋找什麼。
既然您可能沒有龐大的查詢日誌,您可以近似它。接受查詢,拆分術語,查看數據庫中是否有任何類似術語(通過編輯距離,無論如何);用附近的術語替換您的術語,然後重新運行查詢。如果你得到更多的點擊,這可能是一個更好的查詢。建議給用戶。 (既然你已經有了點擊率,而且大多數人只看最前面的2個結果,那就給他們看。)
在這裏http://norvig.com/spell-correct.html有一個簡單的解釋,「這是你的意思」,這是一個非常有趣的閱讀。 – 2010-10-06 21:58:02
看看谷歌稱爲semanticvectors代碼項目。 關於Lucene郵件列表的討論,關於如何使用它的功能,不管它是用java編寫的,還是有相當數量的討論。
您可能需要在搜索日誌中解析和使用一些機器學習算法來構建這樣的功能!
- 1. C#搜索「你的意思是」功能
- 2. Lucene全文搜索引擎你的意思是功能
- 3. Clojure的功能#(:jerry @%)是什麼意思
- 4. Javascript中的功能是什麼意思?
- 5. NEST ElasticSearch您的意思是功能
- 6. Javascript - 這行是什麼意思? !功能($)
- 7. 新增功能(getClass())是什麼意思?
- 8. 試圖在java中實現谷歌的「你的意思」功能
- 9. 通過web api暴露Spotify的「你的意思」功能
- 10. 「你的意思」字典數據庫中的功能
- 11. Lucene.Net功能
- 12. GAE全文搜索「你的意思」功能
- 13. 如何在rails中集成「你的意思」功能?
- 14. 實施「你的意思是?」功能在亞馬遜和谷歌上使用
- 15. 未知recieiver'indexPath'l你的意思是NSIndexPath?
- 16. 你的意思是在CSS #classname
- 17. 「你的意思」在git
- 18. Lucene.net中的「FindAll」功能
- 19. 你能告訴我這個錯誤是什麼意思嗎?
- 20. 意思是init在「你會命名你的意思是什麼應用程序?」之後停止。
- 21. HyperLink上的EnableViewState的功能是什麼意思?
- 22. 是什麼意思:是什麼意思?
- 23. 功能程序員的「道德」是什麼意思?
- 24. TestNG中的部分故障功能是什麼意思?
- 25. Web服務中的功能上下文是什麼意思
- 26. 沒有身體的功能是什麼意思?
- 27. JavaScript:「可執行的功能」是什麼意思?
- 28. 「HOG功能」列表中的每個值是什麼意思?
- 29. 添加監視功能的關鍵參數是什麼意思
- 30. JavaScript中的新功能 - 這是什麼意思?
這是正確的答案,應該接受!正是我在找的;) – 2009-09-24 22:15:06