我有四个指数,称为城市,地区,国家和酒店,他们有共同的名称,名称我想搜索这些索引,并获得在自动完成中使用的结果。此外,我无法使用Logstash和reindex API中的JDBC输入创建具有单个索引的多类型,因为Elasticsearch 6.x中每个索引更改一个文档这里是单索引搜索的示例;
[^a-zA-Z0-9-_\\.]
我想对多指数情况做同样的事情。以下不起作用:
GET /hotels/hotels/_search
{
"query": {
"match": {
"name": {
"query": "term",
"operator": "and"
}
}
}
}
答案 0 :(得分:4)
您可以使用Multi Search API。这样,您可以对不同的索引提供多个查询。例如:
GET _msearch
{"index" : "hotels"}
{ "query": { "match": { "name": { "query": "term", "operator": "and" } } } }
{"index" : "cities"}
{ "query": { "match": { "name": { "query": "term", "operator": "and" } } } }
{"index" : "countries"}
{ "query": { "match": { "name": { "query": "term", "operator": "and" } } } }
{"index" : "regions"}
{ "query": { "match": { "name": { "query": "term", "operator": "and" } } } }