我希望ElasticSearch返回獨立於大小寫的結果分數。舉個例子,假設我查詢字符串「HOUSE」或(「家」),我得到如下結果:如何讓ElasticSearch返回獨立於大小寫的分數?
"House" => score: 0.6868894, "House on the hill" => score: 0.52345484 "HOUSE" => score: 0.52200186
在一個理想的世界中,無論是「豪斯醫生」和「家」將有一個得分1.0和「山上的房子」得分爲0.5。
到目前爲止,我已嘗試添加一個custom analyser,現在正在查看omit_norms選項。我也在考慮模式,因爲他們有一個CASE_INSENSITIVE標誌。不幸的是我發現的官方文檔缺乏的例子和代碼片段...
任何人都可以提供包括實現分數獨立情況下所需的參數查詢的代碼片段/例子嗎?任何人都可以使用Tire for Rails提供解決方案。
MAPPING mapping _source: {} do indexes :id, type: 'integer' indexes :value, :analyzer => 'string_lowercase' end
**分析器被上述
QUERY { "query": { "filtered": { "query": { "query_string": { "query": "house" } } } }, "fields": ["value"], "from": 0, "size": 50, "sort": { "_score": { "order": "desc" } }, "explain": true }
ElasticSearch 0.90.5提到定製分析儀; Rails 4.0.0; 輪胎(寶石)0.6.0
的情況下,敏感性並沒有任何與你的問題,取決於你如何分析你的數據。如果使用默認的ES,一切都是小寫,因此分差是由別的東西造成的,看看解釋輸出知道更多。 – javanna