我正試圖在僅包含字符串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精確搜索空白字符和通配符
- 3. Solr的查詢Wildcardquery在精確的搜索字符串
- 4. Solr搜索精確的短語/子字符串
- 5. solr太陽黑子精確搜索詞
- 6. 在Apache Solr中進行精確搜索
- 7. Solr 6 DateRangeField搜索精確匹配
- 8. Solr - 使用精確數量的詞分開的接近搜索
- 9. 彈性搜索在query_string中使用通配符精確搜索
- 10. 使用Lucene的精確字符串匹配。搜索
- 11. Eclipse:使用精確匹配字符串搜索
- 12. Solr - 使字符搜索幾個其他
- 13. Solr4精確字搜索不起作用
- 14. PHP精確搜索
- 15. solr無法使用確切值搜索
- 16. 在字符串數組中搜索精確的字符串?
- 17. solr爲什麼只用精確搜索返回結果?
- 18. Lucene LongField使用查詢精確搜索
- 19. 使用Lucene的精確短語搜索?
- 20. 如何在同一字段上執行精確搜索和詞幹搜索取決於solr中的運算符
- 21. Solr:搜索包含連字符的字段
- 22. 用Apache Solr搜索名字
- 23. 使用jstree搜索插件啓用節點標題的精確多字搜索
- 24. Django admin中的精確字段搜索
- 25. 使用Solr搜索部分字詞
- 26. solr精確搜索忽略重複短語
- 27. 如何在solr 1.3中獲得精確的搜索結果?
- 28. 提煉Solr搜索,獲得精確匹配?
- 29. Solr搜索打開文檔時精確匹配
- 30. 如何在Solr中執行精確搜索
謝謝。這個標記器做了訣竅。 – pcroadkill