2017-09-14 53 views
0

我嘗試對人指數(按姓氏和名字)搜索,這部分非常簡單:elasticsearch 5:搜索與排除

GET /my_index/persons/search 
{ 
    "query": { 
     "query_string": { 
      "query" : "john doe" 
     } 
    } 
} 

此外,我要排除有此人具體的ID,我試着用filter條款,但我無法正確形成查詢,你們可以幫我嗎?


編輯

我已經試過

{ 
    "query":{ 
     "multi_match":{ 
      "query":"anne mirande", 
      "fields":[ 
       "first_name", 
       "last_name" 
      ], 
      "type":"cross_fields", 
      "operator":"and" 
     } 
    }, 
    "filter":{ 
     "not":{ 
      "term":{ 
       "id":1 
      } 
     } 
    } 
} 

但將是這樣的:在[過濾器]的START_OBJECT 未知的關鍵。

+0

'filter'應該在'query bool'裏面。請參閱:https://www.elastic.co/guide/en/elasticsearch/reference/current/query-filter-context.html –

回答

1

你可以使用這樣的東西。

GET /my_index/persons/search 
{ 
    "query": { 
    "bool": { 
     "must": [ 
     {"term": { 
      "name": { 
      "value": "john doe" 
      } 
     }} 
     ], 
     "must_not": [ 
     {"term": { 
      "_id": { 
      "value": "1" 
      } 
     }} 
     ] 
    } 
    } 
} 
+0

完美,這對我有效,我想我有問題,因爲我使用elastic5 – Senorihl

+0

越新越好! –