Elasticsearch 找不到用于排序字段的映射

标签 elasticsearch

No mapping found for field in order to sort on [created_at]

此消息的实际含义是什么?该字段本身 created_at 存在,我应该重建索引吗?或者有没有办法解决这个错误

更新:

{
   "query":{
      "bool":{
         "must":{
            "multi_match":{
               "query":"phone",
               "fields":[
                  "text"
               ],
               "minimum_should_match":"100%"
            }
         },
         "filter":{

         }
      }
   },
   "sort":[
      {
         "created_at":{
            "order":"desc"
         }
      }
   ]
}

最佳答案

我在日期字段中遇到了同样的问题。 问题是 created_at字段未正确映射。

我们可以通过这两种方式解决

  1. map created_at具有正确映射的字段 "type": "date"
  2. 我们可以指定在没有找到映射时要考虑的字段类型 在下面的排序部分中

{
    "sort": [
        {
            "created_at": {
                "order": "desc",
                "unmapped_type": "date"
            }
        }
    ]
}

希望对你有帮助。

关于Elasticsearch 找不到用于排序字段的映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51100254/

相关文章:

api - 如何在java api中编写elasticsearch script_score

elasticsearch - 在Elastic Search 7中,是否可以使用上下文提示器来增强而不是过滤器?

elasticsearch - 弹性获取具有最小/最大值和最后一个值的文档

c# - 如何使用 C# 的 Nest Elasticsearch 编写查询?

python - pyspark:使用 spark-submit 发送 jar 依赖

c# - .NET HTTP GET 与正文

elasticsearch - Boost elastic [更多类似内容] 数组开头的搜索查询

只有 8 个索引的 ElasticSearch 查询已经填满了 search.queue(容量 1000)

javascript - 如何解析或展平elasticsearch mongo River中的对象引用?

bash - 使用curl的Elasticsearch批量插入不起作用