2017-06-29 73 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或分析仪设置可能有问题。你可以把你的映射?