ElasticSearch-“没有注册查询...”

时间:2015-06-17 13:01:16

标签: search indexing elasticsearch

当尝试使用以下查询查找条目时,ElasticSearch返回“没有为[likes_count]”注册的查询错误。字段 likes_count 是一个新的文档字段,并不存在于每个文档中。

相同的查询在没有排序部分的情况下工作。

为什么会出现此错误?

由于

{
  "query": {
    "filtered": {
      "query": {
        "query_string": {
          "fields": ["description"],
          "query": "sun"
        },
        "sort": [{
          "likes_count": {
            "unmapped_type": "boolean",
            "order": "desc",
            "missing": "_last"
          }
        }]
      },
      "filter": {"term": {"permissions": 1}}
    }
  }
}

1 个答案:

答案 0 :(得分:2)

像这样写下您的查询,即sort需要转到顶级而不是嵌套在query部分:

{
  "query": {
    "filtered": {
      "query": {
        "query_string": {
          "fields": [
            "description"
          ],
          "query": "sun"
        }
      },
      "filter": {
        "term": {
          "permissions": 1
        }
      }
    }
  },
  "sort": [
    {
      "likes_count": {
        "unmapped_type": "boolean",
        "order": "desc",
        "missing": "_last"
      }
    }
  ]
}