elasticsearch如何通过doc id查找文档内容

Ico*_*ast 8 elasticsearch

有很多文章讨论弹性搜索中的倒排索引和倒排列表。但我没有找到任何文章解释elasticsearch如何通过doc id查找文档内容。有人可以向我解释一下吗?谢谢。

Mie*_*iek 10

拉加夫是正确的。不过,我确实有一些补充可以帮助您处理文档 ID。

当您索引没有 ID 的文档时,ElasticSearch 会为您生成 ID。该字段名称是“_id”。

如果您知道要查找的文档的 Id 值,则可以简单地执行如下查询:

GET my_index/_search
{
  "query": {
    "terms": {
      "_id": [ "1", "2" ] 
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

https://www.elastic.co/guide/en/elasticsearch/reference/current/mapping-id-field.html

上述查询将返回 _id 等于 1 OR 2 的文档。

正如 Ragav 在他的回答中所说,如果您按照 id 1 或 2 描述的方式创建文档,您将使用我从 ElasticSearch 文档中提取的示例查询返回它们。

希望这可以帮助。


小智 3

Elasticsearch 构建在Lucene之上。当您将新文档索引到 Elasticsearch 时,它会将 _index、_type 和 _id 与实际内容 (_source) 一起索引为文档的一部分。

因此,当您尝试使用 get API _index/_type/_id 获取文档时,它基本上会转换为搜索与 _index、_type 和 _id 匹配的文档的查询。

这就是 Elasticsearch 向您返回文档的方式。