为什么弹性匹配和项返回相同的结果?

时间:2019-02-13 20:01:36

标签: elasticsearch elastic-stack

我有简单的映射:

PUT testing_ind
{
  "mappings": {
    "_doc": { 
          "properties": {
             "a":  { "type": "text" , "index": true }
          }
    }
  }
}

和配置:

    POST testing_ind/_doc
{
  "settings": {
    "number_of_shards": 5,
    "number_of_replicas": 2
  }
}

然后放数据:

PUT testing_index/_doc/1
{ "a":     "123 asd"}

PUT testing_index/_doc/2
{  "a":     "asd 123"}

PUT testing_index/_doc/3
{ "a":     "asd"}

PUT testing_index/_doc/4
{ "a":     "123"}

问题: 为什么我进行比赛时会有相同的结果?

GET testing_ind/_doc/_search
{
  "query": {
    "term": {
      "a" : "123"
    }
  }
}

OR

GET testing_ind/_doc/_search
{
    "query" : {
        "constant_score" : { 
            "filter" : {
                "term" : { 
                    "a" :  "123"
                }
            }
        }
    }
}

如果我有条款匹配,结果是相同的。我只是对为什么感兴趣?我也尝试过过滤器,但还是一样。因此,如果结果相同,我不理解匹配查询和术语查询之间的区别。

0 个答案:

没有答案