Elasticsearch 多索引/多类型搜索
在Elasticsearch中,多索引/多类型的搜索可以通过在查询时指定索引和类型列表来实现。以下是一个使用Elasticsearch Python客户端进行多索引、多类型搜索的示例代码:
from elasticsearch import Elasticsearch
# 初始化Elasticsearch客户端
es = Elasticsearch(['http://localhost:9200/'])
# 定义要搜索的索引和类型列表
indices = 'index1,index2'.split(',') # 用逗号分隔的索引名列表
types = 'type1,type2'.split(',') # 用逗号分隔的类型名列表
# 定义搜索查询
query = {
'query': {
'match': {
'field_name': 'value_to_search'
}
}
}
# 执行多索引、多类型搜索
results = es.search(
index=indices,
doc_type=types,
body=query
)
# 输出搜索结果
print(results)
在这个例子中,我们首先初始化了Elasticsearch客户端,然后定义了要搜索的索引和类型列表。接着,我们构建了一个简单的查询,它将在所有指定的索引和类型中搜索字段field_name
的值为value_to_search
的文档。最后,我们执行搜索并打印返回的结果。
请注意,在Elasticsearch 7.0+中,doc_type
参数已被弃用。在这种情况下,你可以使用单一索引的多类型或者对每个类型分别执行搜索。
评论已关闭