You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Elasticsearch 8.11.3查询无hits段原因排查求助

为什么Elasticsearch查询响应没有hits段?

环境与问题描述

使用Elasticsearch 8.11.3,索引包含以下字段:

  • Период: 日期时间类型,示例值2023-12-12T21:23:37Z
  • БазовыйURL: 字符串类型,示例值api.site.ru:443

执行以下POST请求后,响应中没有预期的hits段:

错误的请求

POST myindex-alias/_doc/_search?pretty
{"from":0,"size":200,"query":{"bool":{"must":[{"range":{"Период":{"time_zone":"+07:00","gte":"2023-12-01T00:00:00","lte":"2023-12-21T23:59:59"}}}]}},"sort":{"Период":{"order":"asc"}}}

错误请求的响应

{
  "_index": "myindex-alias",
  "_id": "_search",
  "_version": 27,
  "result": "updated",
  "_shards": {
    "total": 2,
    "successful": 1,
    "failed": 0
  },
  "_seq_no": 81326,
  "_primary_term": 1
}

而执行以下GET请求时,能正常返回包含hits的搜索结果:

正确的请求

GET myindex-alias/_search?from=0&size=10

正确请求的响应

{
  "took": 9,
  "timed_out": false,
  "_shards": {
    "total": 1,
    "successful": 1,
    "skipped": 0,
    "failed": 0
  },
  "hits": {
    "total": {
      "value": 10000,
      "relation": "gte"
    },
    "max_score": 1,
    "hits": [
      {
        "_index": "model_erp_log_exchange_ozon-000001",
        "_id": "d7c428c4-243c-40d4-8019-eb48fa1ec8e2",
        "_score": 1,
        "_source": {
          "Период": "2023-12-12T21:23:37Z",
          "БазовыйURL": "api-seller.ozon.ru:443"
      ...
    ]
  }
}

问题原因

错误出在请求路径上:你使用了POST myindex-alias/_doc/_search,这个路径会被Elasticsearch识别为对索引中_id为_search的文档执行更新/插入(upsert)操作,而非搜索操作。因此返回的是文档写入的响应,自然不会包含hits段。

解决方法

正确的搜索请求路径应该去掉中间的/_doc:

  • 使用POST方式:POST myindex-alias/_search?pretty
  • 或者使用GET方式:GET myindex-alias/_search?pretty

将请求路径修正后,即可正常获取包含hits的搜索结果。

内容的提问来源于stack exchange,提问作者Игорь В

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 21:46:24