搜索结果不一致

时间:2019-07-15 21:05:25

标签: elasticsearch elasticsearch-5

在Elastic 5.5.1中,我有两个索引,两个索引中都有相同的数据,即608k条记录。当我对每个索引运行multi_match查询时,我在它们之间检索到不同数量的结果。将搜索结果与原始数据源进行比较时,这就是我得到的:

_______________________________
|    Source      | Rows Found |
|  ------------  | ---------- |
| SQL            | 1300       |
| Elastic Index 1| 503        |
| Elastic Index 2| 626        |
-------------------------------

查询:

SQL:
SELECT field1 FROM Table WHERE field1 LIKE '78%'

ELASTIC:
/_search
{
  "query": {
    "bool": {
      "must": [
        {
          "multi_match": {
            "type": "phrase_prefix",
            "query": "78",
            "fields": [
              "field1"
            ]
          }          
        }
      ]
    }
  }
}

索引1:

PUT test_index_one
{
  "mappings": {
    "field1": {
      "type": "text",
      "fields": {
        "keyword": {
          "type": "keyword",
          "ignore_above": 256
         }
      }
    }
  }
}

索引2:

PUT test_index_two
{
  "mappings": {
    "field1": {
      "type": "text",
      "fields": {
        "keyword": {
          "type": "keyword",
          "ignore_above": 256
         }
      }
    }
  }
}

我的问题是,尽管索引不同,为什么对相同数据集使用相同查询却无法获得相同数量的匹配?我知道分数在各个分片上可能会有所不同,这就是search_type=dfs_query_then_fetch参数起作用的地方,但是在这里我可能会缺少一些东西吗?

0 个答案:

没有答案