在elasticsearch排序搜索返回中_doc是什么意思?

prdp8dxp  于 2023-04-29  发布在  ElasticSearch
关注(0)|答案(1)|浏览(133)

当我在elasitcsearch中使用_search函数进行排序时,我在排序字段中得到了_doc。它和_doc字段作为单据类型有什么区别?
Elasticseach版本:6.2.2

"sort": [
    1577413214250, # timestamp
    393 # _doc
  ]

实际上,kibana在实现“周围文档”时也使用了_doc:

{"index":["prophet-job-*"],"ignore_unavailable":true,"preference":1577428415532}
{"version":true,"size":5,"search_after":[1577413214250,385],"sort":[{"@timestamp":{"order":"asc","unmapped_type":"boolean"}},{"_doc":{"order":"desc","unmapped_type":"boolean"}}],"_source":{"excludes":[]},"stored_fields":["*"],"script_fields":{},"docvalue_fields":["@timestamp"],"query":{"bool":{"must":[{"match_all":{}}],"filter":[],"should":[],"must_not":[]}}}
{"index":["prophet-job-*"],"ignore_unavailable":true,"preference":1577428415532}
{"version":true,"size":5,"search_after":[1577413214250,385],"sort":[{"@timestamp":{"order":"desc","unmapped_type":"boolean"}},{"_doc":{"order":"asc","unmapped_type":"boolean"}}],"_source":{"excludes":[]},"stored_fields":["*"],"script_fields":{},"docvalue_fields":["@timestamp"],"query":{"bool":{"must":[{"match_all":{}}],"filter":[],"should":[],"must_not":[]}}}
ubby3x7f

ubby3x7f1#

_doc在排序的上下文中可以使用,如果你不关心顺序,只是想以最有效的方式返回文档。将其视为一个搜索选项,而不是索引文档类型“_doc”

更多关于按**_doc**排序的信息,请参考官方文档。
嗨,丹尼斯,下面是一个简单的例子:http://test.kibana.some.net/elasticsearch/_msearch请求支付:

{"index":["some-index-*"],"ignore_unavailable":true,"preference":1577931761749}
{"version":true,"size":5,"search_after":[1577931865123,12],"sort":[{"@timestamp":{"order":"asc","unmapped_type":"boolean"}},{"_doc":{"order":"desc","unmapped_type":"boolean"}}],"_source":{"excludes":[]},"stored_fields":["*"],"script_fields":{},"docvalue_fields":["@timestamp"],"query":{"bool":{"must":[{"match_all":{}}],"filter":[],"should":[],"must_not":[]}}}
{"index":["some-index-*"],"ignore_unavailable":true,"preference":1577931761749}
{"version":true,"size":5,"search_after":[1577931865123,12],"sort":[{"@timestamp":{"order":"desc","unmapped_type":"boolean"}},{"_doc":{"order":"asc","unmapped_type":"boolean"}}],"_source":{"excludes":[]},"stored_fields":["*"],"script_fields":{},"docvalue_fields":["@timestamp"],"query":{"bool":{"must":[{"match_all":{}}],"filter":[],"should":[],"must_not":[]}}}

部分响应是

{
  "_index": "some-index-2020.01.02",
  "_type": "doc",
  "_id": "123456",
  "_version": 1,
  "_score": null,
  "_source": {
    "@timestamp": "2020-01-02T02:24:25.123Z",
    "prospector": {
      "type": "log"
    },
    "@version": "1",
    "tags": [
      "beats_input_codec_plain_applied"
    ],
    "fields": {
      "some-values": "xxxxxx"
    },
    "message": "[2020-01-02 10:24:24] [INFO] [evaluation.py:277] Finished evaluation at 2020-01-02-02:24:24"
  },
  "fields": {
    "@timestamp": [
      "2020-01-02T02:24:25.123Z"
    ]
  },
  "sort": [
    1577931865123,
    11 # this is _doc value
  ]
}

我第二次搜索同样的东西时,response有相同的内容,除了_doc值更改为12,所以我对这个字段的定义感到困惑。

相关问题