我在ElasticSearch中有五个不同的域,它们是索引的,应该用于全文搜索。
如果我做一个GET请求,比如
GET endpoint_to_my_elastic_search/*/_search?q=test我得到了_score排序的结果。到目前为止一切都很好,但我希望有一个结果,显示我的10个最好的命中(按分数)的每个领域。我是这样尝试的:
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个结果?
发布于 2019-12-09 21:51:10
发布于 2019-12-09 22:34:07
在Nirmal和Hariharan的帮助下,我得到了正确的JSON,它显示了我所有域名的10个最佳结果:
{
"aggs": {
"top_tags": {
"terms": {
"field": "_index",
},
"aggs": {
"top_search_hits": {
"top_hits": {
"sort": [
{
"_score": {
"order": "desc"
}
}
],
"size" : 10
}
}
}
}
}
}https://stackoverflow.com/questions/59250202
复制相似问题