如何通过别名_id请求单个文档?

Mis*_*iev 8 elasticsearch

是否可以通过查询别名来通过其id请求单个文档,前提是别名中所有索引的所有键都是唯一的(它是外部保证)?

Hes*_*oon 11

是的,查询跨越多个索引的别名与查询一个indice的方式相同.

只需对别名执行此查询:

POST my_alias_name/_search
{
    "filter":{
        "term":{"_id": "AUwNrOZsm6BwwrmnodbW"}
    }
}
Run Code Online (Sandbox Code Playgroud)

编辑:GET操作不是真正的搜索,不能跨越多个索引的别名.因此,以下查询实际上是不允许的:

GET my_alias_name/my_type/AUwNrOZsm6BwwrmnodbW
Run Code Online (Sandbox Code Playgroud)


Sha*_*ams 9

从Elasticsearch 5.1查询看起来像:

GET /my_alias_name/_search/
{
    "query": { 
        "bool": {
         "filter": {
                "term": {
                   "_id": "AUwNrOZsm6BwwrmnodbW"
                }
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)


Con*_*ong 9

在Elasticsearch 8.2 Doc之后,您可以使用 GET API 检索单个文档:

GET my-index-000001/_doc/0
Run Code Online (Sandbox Code Playgroud)