2017-06-29 120 views
0

我想獲取精確匹配給出了兩個方面的所有文檔提供了兩個精確值,即 ID = 100,名稱= XYZ如何匹配elasticsearch

我查詢

query: { 
    constant_score: { 
     filter: { 
     bool: { 
      must: [ 
      { term: { id: '100' } }, 
      { term: { name: 'xyz' } }, 
      ], 
     }, 
     }, 
    }, 
    } 

但這給出與id或name或兩者匹配的所有文檔。 我只想要那些匹配兩個屬性的文檔,它們應該完全匹配。

我應該怎麼做?

我擡頭看了看。 elasticsearch

在此先感謝。

編輯

ES版本 - 2.1.1

+0

你還可以發佈你的映射答案的版本? – user3775217

回答

0

這應做到:

{ 
    "query": { 
     "bool": { 
      "must": [ 
       {"match": {"id": "100"}}, 
       {"match": {"name": "XYZ"}} 
      ] 
     } 
    } 
} 
+0

它給出了和以前相同的結果。 :( – sandy

0
{ 
    "query": { 
     "bool": { 
      "must": [ 
       {"match": {"id": "100"}}, 
       {"match": {"name": "XYZ"}} 
      ] 
     } 
    } 
} 

上面的代碼應該做的伎倆。如果這不起作用,您的index_option或分析儀設置可能有問題。你可以把你的映射?