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

时间:2018-09-18 14:49:17

标签: elasticsearch

有很多文章讨论弹性搜索中的倒排索引和发布列表。但是我没有找到任何文章来说明弹性搜索如何通过文档ID查找文档内容。 有人可以向我解释吗? 谢谢。

2 个答案:

答案 0 :(得分:1)

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

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

Elasticsearch可以通过这种方式退还您的文档。

答案 1 :(得分: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文档中提取的示例查询返回它们。

希望这会有所帮助。

相关问题