弹性搜索如何通过doc id查找文档内容

问题描述 投票:1回答:2

有很多文章在弹性搜索中谈论倒排索引和发布列表。但我没有找到任何解释弹性搜索如何通过doc id查找文档内容的文章。谁有人向我解释这个?谢谢。

elasticsearch
2个回答
1
投票

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

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

这就是Elasticsearch能够为您返回文档的方式。


1
投票

Ragav是对的。但是,我确实有一些补充,可以帮助您使用文档ID。

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

如果您知道要查找的文档的Id值,则只需执行以下查询:

GET my_index/_search
{
  "query": {
    "terms": {
      "_id": [ "1", "2" ] 
    }
  }
}

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

上面的查询将返回_id等于1或2的文档。

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

希望这可以帮助。

© www.soinside.com 2019 - 2024. All rights reserved.