我正試圖在僅包含字符串1604-04的標題中搜索Solr中的術語。但結果會返回任何包含1604或04的結果。語法是什麼將迫使solr搜索1604-04的確切字符串?Solr使用連字符精確搜索
回答
您還可以使用經典標記生成器 .The經典標記生成器保留了相同的行爲標準分詞器但下列情況除外: -
字在連字符分割,除非有字的數,在這種情況下,令牌不會被拆分,並且保留數字和連字符(012)。
這意味着如果有人搜索1604-04那麼這個Tokenizer不會將搜索字符串分解爲兩個標記。
如果只需要精確匹配,請使用字符串字段或帶有KeywordTokenizer的文本字段作爲標記器。這些將令您的令牌保持原樣,並且不會將其分解爲多個令牌。
不同之處在於,如果您將Textfield與KeywordTokenizer結合使用,則仍然可以應用其他過濾器(例如LowercaseFilter),而字符串字段將逐字存儲任何內容,而無需進行任何進一步處理。
非常感謝。它引導我們找到正確的解決方案。我們實際上最終使用了Classic Tokenizer。 – pcroadkill
您的分析儀將「1604-04」分爲兩個術語「1604」和「04」。您已經收到關於如何更改分析以停止這樣做的答案。
更改你的分析我不是最好的解決方案(不能完全確定根據你寫的內容)。使用phrase query將是通常的做法。您可以通過在引號包裹它使用短語查詢:
field:"1604-04"
這仍然將分析,並將其分爲兩個方面,但它會尋找在序列這些條款。所以,該查詢將匹配「1604-04」和「1604 04」,但是而不是「1604某些其他的東西04」。
- 1. Solr精確搜索字詞
- 2. Solr的查詢Wildcardquery在精確的搜索字符串
- 3. Solr搜索精確的短語/子字符串
- 4. Solr 6 DateRangeField搜索精確匹配
- 5. 彈性搜索在query_string中使用通配符精確搜索
- 6. 使用Lucene的精確字符串匹配。搜索
- 7. Eclipse:使用精確匹配字符串搜索
- 8. PHP精確搜索
- 9. 在字符串數組中搜索精確的字符串?
- 10. 使用Lucene的精確短語搜索?
- 11. 用Apache Solr搜索名字
- 12. Django admin中的精確字段搜索
- 13. 使用Solr搜索部分字詞
- 14. 提煉Solr搜索,獲得精確匹配?
- 15. 如何在solr 1.3中獲得精確的搜索結果?
- 16. 搜索子字符與Rails Solr
- 17. 搜索特定字符串solr
- 18. 只搜索精確匹配
- 19. solr像使用text_en搜索
- 20. Solr搜索 - 使用查詢
- 21. Solr搜索:按字母搜索名稱
- 22. Solr搜索「哈希符號」
- 23. Solr的:搜索與特殊字符與短語搜索
- 24. 與jquery中的精確搜索字符串匹配
- 25. XML文件中的精確字符串搜索?
- 26. Solr/SolrNet - 使用通配符進行逐字母搜索
- 27. 使用solr suggestor搜索中間或後綴字符串?
- 28. 在solr查詢中用特殊字符搜索通配符
- 29. 索引/搜索PDF內容使用Solr
- 30. Solr的 - 搜索字符串中的字符
謝謝。這個標記器做了訣竅。 – pcroadkill