当跨多个索引执行查询时,有时需要添加仅与某些索引相关联的查询子句。该 _index字段允许在索引文档上进行索引的匹配。它可以在 term,terms 查询,aggregations(聚合) , scripts(脚本) , sorting(排序)中使用 :
注意 :
该 _index 被表现为虚拟字段 - 它不会作为实际字段添加到 Lucene 索引。这意味着您可以使用 term 或 terms 查询(或任何重写到 term 查询的查询,如 match , query_string 或 simple_query_string 查询) _index 字段,但不支持 prefix(前缀) , wildcard(通配符), regexp(正则表达式)或 fuzzy(模糊查询)。
# Example documents
curl -XPUT 'localhost:9200/index_1/my_type/1?pretty' -H 'Content-Type: application/json' -d'
{
"text": "Document in index 1"
}
'
curl -XPUT 'localhost:9200/index_2/my_type/2?refresh=true&pretty' -H 'Content-Type: application/json' -d'
{
"text": "Document in index 2"
}
'
curl -XGET 'localhost:9200/index_1,index_2/_search?pretty' -H 'Content-Type: application/json' -d'
{
"query": {
"terms": {
"_index": ["index_1", "index_2"] # 1
}
},
"aggs": {
"indices": {
"terms": {
"field": "_index", # 2
"size": 10
}
}
},
"sort": [
{
"_index": { # 3
"order": "asc"
}
}
],
"script_fields": {
"index_name": {
"script": {
"lang": "painless",
"inline": "doc[\u0027_index\u0027]" # 4
}
}
}
}
'
| 1 | 查询 _index 字段 | | 2 | 聚合 _index 字段 | | 3 | 在 _index 字段上排序 | | 4 | 在脚本中访问 _index 字段 |