剛開始使用Lucene.Net。我使用標準分析器對100,000行進行了索引,運行了一些測試查詢,並注意到如果原始詞彙是單數的,則多個查詢不會返回結果。我瞭解雪球分析儀增加了支持支持,這聽起來不錯。但是,我想知道是否有任何缺點與雪球超過標準?我是否因此而失去任何東西?有沒有其他的分析儀可以考慮?Lucene標準分析器vs雪球
回答
是的,通過使用諸如雪球之類的詞幹,你正在丟失關於文本原始形式的信息。有時候這會很有用,有時候不會。例如,Snowball會將「組織」變成「器官」,因此對「組織」的搜索將返回帶有「器官」的結果,而不會有任何計分處罰。
這是否適合您取決於您的內容以及您支持的查詢類型(例如,搜索非常基本,還是非常複雜的用戶,並且使用您的搜索來準確地篩選結果)。你也可能想看看不那麼積極的詞幹,如KStem。
我剛想通了,你也可以做一個像這樣的「袋鼠〜」這樣的模糊搜索,它會返回這個單詞的單數形式,儘管它似乎需要更長的時間來處理查詢。 – alchemical 2010-10-06 19:02:39
@alchemical:我真的會建議不要這樣做。 〜是一個非常慢的操作符,如果你的用戶做了像搜索一個短語的東西,你有點擰。爲什麼「袋鼠」被存儲爲「袋鼠」這麼糟糕? – Xodarap 2010-10-06 21:49:00
好的,這是很好的知道 - 使用KStem你需要Solr嗎?你需要使用Lucene源代碼來整合它嗎? – alchemical 2010-10-06 21:59:42
我剛完成一個分析器,執行lemmaization。這與詞幹類似,除了它使用上下文來確定單詞的類型(名詞,動詞等)並使用該信息來推導詞幹。它還保留索引中單詞的原始形式。也許my library可以對你有用。不過,它需要Lucene Java,而且我不知道任何C#/ .NET的解迷器。
snowball分析儀會增加您的召回率,因爲它比標準分析儀更具侵略性。所以你需要評估你的搜索結果,看看你的數據是否需要增加recall or precision。
- 1. 標準分析Lucene的
- 2. Java lucene標準分析器的默認分隔符?
- 3. ElasticSearch:使用雪球分析儀
- 4. 使用標準分析器在Lucene中獲取精確匹配?
- 5. Lucene前綴通過標準分析器搜索索引數據
- 6. 使用標準分析器磨砂Lucene搜索術語
- 7. 如何設置用於PhraseQuery搜索的Lucene標準分析器?
- 8. 雪球分析儀與語言分析儀
- 9. ElasticSearch啓用雪球分析器和字段上的同義詞
- 10. Lucene標準分析儀在時間段上分割
- 11. Lucene分析器的名字
- 12. Lucene中文分析器.NET
- 13. LUCENE標準分析儀連字符考慮
- 14. lucene標準分析器是否刪除停用詞並具有阻止功能?
- 15. 如何使用lucene標準分析器對狀態縮寫進行索引?
- 16. Lucene的分析
- 17. 如何添加小寫索引雪球分析儀ElasticSearch
- 18. Elasticsearch雪球分析儀需要精確的詞
- 19. Lucene的使用雪球和拼寫檢查帶回奇怪值
- 20. 如何在Java中編寫Lucene雪球代碼
- 21. 當使用Grails可搜索插件時,正確的雪球分析器配置
- 22. 使用雪球分析器彈性搜索連字符的奇怪問題
- 23. WordPress的全球分類標準
- 24. 分類標準級解析
- 25. 關鍵詞lucene python的分析器?
- 26. 分析器用於創建Lucene索引
- 27. lucene自定義分析器中的Nullpointerexception
- 28. 帶lucene的西班牙語分析器
- 29. Lucene 6.1自定義Tokenizer和分析器
- 30. 創建一個Lucene分析器
如果您使用雪球分析儀,您應該得到單數/複數的結果,因爲雪球會將它們歸一化爲相同的形式。你確定你使用相同的分析器來創建索引並查詢它嗎? – Skarab 2010-10-10 11:03:44