2017-06-08 15 views
0

Elastic Searchには、関数:setDefaultOperatorがあります。弾性検索:最初にもう1つの一致を得る

$query->setDefaultOperator('AND')->setFields(array('keyword')); 

上記は、完全一致のみを示している。

$query->setDefaultOperator('OR')->setFields(array('keyword')); 

は、上記のすべての一致を与えます。(しかし、正確な最初の一致しない)

私は、最初の完全一致、他の一致を必要としています。何か案が?

私は初めて弾性検索を使用しています。どんな助けもありがとう。

答えて

0

query_string を使用して実行する場合は、デフォルトの演算子ORを変更するには、デフォルトの演算子を定義する必要があります。 https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-query-string-query.html

PUT /phone/brand/1 
{ 
    "color" : "black", 
    "name" : "Samsung" 
} 

PUT /phone/brand/2 
{ 
    "color" : "black", 
    "name" : "Iphone" 
} 

PUT /phone/brand/3 
{ 
    "color" : "white", 
    "name" : "Samsung" 
} 

//query string 
GET /phone/brand/_search 
{ 
    "query": { 
    "query_string": { 
     "fields": ["color","name"], 
     "default_operator": "AND", 
     "query": "Samsung black" 
    } 
    } 
} 
Kibana

使用して下記をご覧完全な例を持っています
関連する問題