ElasticSearch java api,想要实现一次请求查询多个类型的同时,每个类型只取固定数量的数据

Elasticsearch | 作者 l433608734 | 发布于2019年01月11日 | 阅读数:733

最近在做系统的搜索功能,在一个索引下建了一些不同的类型。
页面上的全局搜索功能是要求展示所有类型的数据。
一开始想的是按找类型发起请求,每个类型一次,只取几条数据。
但是发现查全部类型的时候,虽然单个类型的数据查询已经解析工作只需要几十毫秒,但全部执行完就需要一秒左右了。
所以想要实现只请求一次,查询所有类型的数据,并且每个类型只取固定数量的数据。
请问java api能实现这样的功能吗?
已邀请:

laoyang360 - [死磕Elasitcsearch]知识星球地址:http://t.cn/RmwM3N9;微信公众号:铭毅天下; 博客:https://elastic.blog.csdn.net

赞同来自: rochy

换一种思路,这么实现一下,能满足你的要求。
POST weibo_index/weibo_type,weibo_cm_type/_search
{
"size": 0,
"query": {
"bool": {
"must": {
"match": {
"cont": "北京"
}
}
}
},
"aggs": {
"type_aggs": {
"terms": {
"field": "_type",
"size": 2
},
"aggs": {
"top_hits_aggs": {
"top_hits": {
"size": 5,
"_source": [
"pt",
"url"
]
}
}
}
}
}
}

zqc0512 - andy zhou

赞同来自:

from size 
index *
es 6.x+ not support types in one index .change it better for future.
user from size  can do it  .not scroll.
 

ccsy

赞同来自:

试一下mget查询,多个查询合并在一起

HelloClyde

赞同来自:

msearch和collapse试一下

要回复问题请先登录注册