Elasticsearch has_child不返回所有父文档

时间:2018-05-01 19:26:47

标签: elasticsearch

以下是customercustomer_query文档的映射数据,其中customer是父文档,customer_query是子文档。

customer customer_query

当我针对所有customer_query文档运行通用搜索时,我会收到127个文档。

all customer_query docs

但是,当我对父

运行以下查询时
curl -XGET "http://localhost:9200/fts_index/customer/_search" -d'
{
  "query": {
    "has_child" : {
        "type" : "customer_query",
        "query" : { "match_all": {} }
        }
    }
  }
}'

我只收回了23份文件。由于每个customer_query文档都分配了一个与customer类型匹配的唯一父ID,因此应该返回127个文档。

当我重新创建我的customer_query文档时,我每次都会收到不同数量的文档,这些文档会让我认为它是某种碎片问题。我有5个分片分配给索引。

{
  "took" : 59,
  "timed_out" : false,
  "_shards" : {
    "total" : 5,
    "successful" : 5,
    "failed" : 0
  },
  "hits" : {
    "total" : 23,
    "max_score" : 1.0,
    "hits" : [ {
      "_index" : "fts_index",
      "_type" : "customer",
      "_id" : "7579f2c0-e4e4-4374-82d7-bf4c508fc51d",
      "_score" : 1.0,
      "_routing" : "8754248f-1c51-46bf-970a-493c349c70a7",
      "_parent" : "8754248f-1c51-46bf-970a-493c349c70a7",
      ....

我无法解决这个问题。关于可能出现什么问题的任何想法?这是路由问题吗?如果是这样,我如何通过搜索来纠正这个问题?

0 个答案:

没有答案