首页 > 解决方案 > Elasticsearch:跨多个索引/别名的全局搜索

问题描述

我们有多个索引,它们代表不同的实体类型,具有明显不同的字段名称(并非所有索引都应该在“全局”搜索方面是可搜索的)。此外,搜索结果应根据索引进行排序(优先级,来自 idx0 的结果应始终“高于”idxN)。

我的想法是对所有索引使用相同的别名(例如“全局”)

 POST /_aliases
 {
    "actions" : [
        { "add" : { "indices" : ["idx0", ... , "idxN"], "alias" : "global" } }
    ]
 }

,并且对于搜索使用这样的查询:

{
 "query": {
    "query_string": {
         "query": "*search term*",
         "fields":[
               "idx0_field0",
               "idx0_field1",
               ...
               "idxN_fieldN",
            ]
        }
    }
}

这样,似乎可以在创建别名时指定顺序。

但我怀疑这是一个很好的解决方案。所以我想知道,有没有更好的方法?或者,也许你有任何改进我的技巧?

标签: elasticsearch

解决方案


推荐阅读