首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >按域名从ElasticSearch获得10个最佳结果

按域名从ElasticSearch获得10个最佳结果
EN

Stack Overflow用户
提问于 2019-12-09 21:45:00
回答 2查看 41关注 0票数 0

我在ElasticSearch中有五个不同的域,它们是索引的,应该用于全文搜索。

如果我做一个GET请求,比如

代码语言:javascript
运行
复制
GET endpoint_to_my_elastic_search/*/_search?q=test

我得到了_score排序的结果。到目前为止一切都很好,但我希望有一个结果,显示我的10个最好的命中(按分数)的每个领域。我是这样尝试的:

代码语言:javascript
运行
复制
GET endpoint_to_my_elastic_search/domain1/_search?q=test&size=10
GET endpoint_to_my_elastic_search/domain2/_search?q=test&size=10
GET endpoint_to_my_elastic_search/domain3/_search?q=test&size=10
GET endpoint_to_my_elastic_search/domain4/_search?q=test&size=10
GET endpoint_to_my_elastic_search/domain5/_search?q=test&size=10

很好--它能工作。现在我有来自每个领域的10个最好的结果。但是域名的数量将在未来增加到10或20。所以我必须发送20个请求到我的ElasticSearch…闻起来像是糟糕的表现;-)

有没有办法告诉ElasticSearch从每个请求的域名中给出最佳的10个结果?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-12-09 21:51:10

几天前我回答了一个类似的question --建议使用top_hits aggs。

更新:_index是一个元字段,因此您可以使用通配符或别名跨多个索引进行查询,并将该字段用于agg:

代码语言:javascript
运行
复制
curl -XPOST localhost:9200/index-*/_search?pretty -d '
{
  "aggs": {
    "top_indices": {
      "terms": {
        "field": "_index"
      },
      "aggs": {
        "top_docs": {
          "top_hits": {}
        }
      }
    }
  }
}'
票数 2
EN

Stack Overflow用户

发布于 2019-12-09 22:34:07

在Nirmal和Hariharan的帮助下,我得到了正确的JSON,它显示了我所有域名的10个最佳结果:

代码语言:javascript
运行
复制
{
    "aggs": {
        "top_tags": {
            "terms": {
                "field": "_index",
            },
            "aggs": {
                "top_search_hits": {
                    "top_hits": {
                        "sort": [
                            {
                                "_score": {
                                    "order": "desc"
                                }
                            }
                        ],
                        "size" : 10
                    }
                }
            }
        }
    }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59250202

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档