如果别名中所有索引的所有键都是唯一的(这是一个外部保证),是否可以通过查询别名来请求单个文档的id?
tsm1rwdh1#
是的,查询跨多个索引的别名与查询一个索引的工作方式相同。只需对别名执行以下查询:
POST my_alias_name/_search { "filter":{ "term":{"_id": "AUwNrOZsm6BwwrmnodbW"} } }
字符串编辑:GET操作不是真实的搜索,不能在跨多个索引的别名上执行。因此,以下查询实际上是不允许的:
GET my_alias_name/my_type/AUwNrOZsm6BwwrmnodbW
型
9rbhqvlz2#
在Elasticsearch 5.1中,查询看起来像这样:
GET /my_alias_name/_search/ { "query": { "bool": { "filter": { "term": { "_id": "AUwNrOZsm6BwwrmnodbW" } } } } }
字符串
5kgi1eie3#
在Elasticsearch 8.2 Doc之后,您可以使用GET API检索单个文档:
GET my-index-000001/_doc/0
jmp7cifd4#
7.2 version Docs建议:
GET /_search { "query": { "ids" : { "values" : ["1", "4", "100"] } } }
字符串响应应该如下所示:
{ "took": 0, "timed_out": false, "_shards": { "total": 2, "successful": 2, "skipped": 0, "failed": 0 }, "hits": { "total": { "value": 1, "relation": "eq" }, "max_score": 1.0, "hits": [ { "_index": "indexwhatever", "_type": "_doc", "_id": "anyID", "_score": 1.0, "_source": { "field1": "value1", "field2": "value2" } } ] } }
bbmckpt75#
如果你想用curl找到一个有内部id的文档:
curl -X GET 'localhost:9200/_search?q=id:42&pretty'
5条答案
按热度按时间tsm1rwdh1#
是的,查询跨多个索引的别名与查询一个索引的工作方式相同。
只需对别名执行以下查询:
字符串
编辑:GET操作不是真实的搜索,不能在跨多个索引的别名上执行。因此,以下查询实际上是不允许的:
型
9rbhqvlz2#
在Elasticsearch 5.1中,查询看起来像这样:
字符串
5kgi1eie3#
在Elasticsearch 8.2 Doc之后,您可以使用GET API检索单个文档:
字符串
jmp7cifd4#
7.2 version Docs建议:
字符串
响应应该如下所示:
型
bbmckpt75#
如果你想用curl找到一个有内部id的文档:
字符串