2014-10-29 20 views
0

我碰巧在Elasticsearch中查看一個場景,其中鄰近搜索未按預期工作。下面讓我解釋一下。Elasticsearch近似查詢是否工作正常?

當我嘗試搜索詞「apple samsung」〜1時,它給我帶來了來自我本地集羣的10個結果。但是當鄰近的詞是「三星蘋果」〜1時,它只帶來了2個結果。

按照以下網址的Elasticsearch文檔,這兩個詞應該給我相同數量的結果

http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/query-dsl-query-string-query.html#_proximity_searches

的可以在這裏有人會幫我在這。

由於提前, 馬諾

回答

2

這將取決於你的數據 - 如果您的查詢是:

curl -XGET 'http://localhost:9200/test/message/_search?pretty' -d '{ 
    "query": { 
     "query_string": { "query":"\"apple samsung\"~1"} 
    } 
    }' 

這是一個的slop,它將匹配

"samsung apple" 
"samsung xxxx apple" 

以匹配「蘋果」首先出現的位置,您需要指定污漬2:

curl -XGET 'http://localhost:9200/test/message/_search?pretty' -d '{ 
    "query": { 
     "query_string": { "query":"\"apple samsung\"~2"} 
    } 
    }'