例如,在google.com中,有2种类型的搜索结果,1。与关键字相关的广告和2.正常搜索结果。
如何使用具有以下条件的弹性搜索
如何制作单个查询以将这两个条件整合到搜索结果中。
给定样本数据,用'a'查询然后它应该随机返回(支付1-3)然后随机跟随(正常4-6)
{"type" : "paid", "document" : "paid random 1"}
{"type" : "paid", "document" : "paid random 2"}
{"type" : "paid", "document" : "paid random 3"}
{"type" : "normal", "document" : "normal random 4"}
{"type" : "normal", "document" : "normal random 5"}
{"type" : "normal", "document" : "normal random 6"}
答案 0 :(得分:0)
你看着你的问题, 我想你正在尝试获取文件。
所以,我设法向你提出要求, 我使用了top_hits聚合,
这是请求,
curl -XPOST "http://localhost:9200/x3/_search" -d'
{
"query": {
"match": {
"doc": "xxx"
}
},
"aggs": {
"tophits_random_paid": {
"top_hits": {
"from": 0,
"size": 3,
"sort": [
{
"paidAmount": {
"order": "desc"
}
},
{
"_script": {
"script": "(doc[\"userid\"].value + salt).hashCode()",
"type": "number",
"params": {
"salt": "some_random_string"
},
"order": "asc"
}
}
]
}
},
"tophits_random_default": {
"top_hits": {
"from": 0,
"size": 3,
"sort": [
{
"_script": {
"script": "(doc[\"userid\"].value + salt).hashCode()",
"type": "number",
"params": {
"salt": "some_random_string"
},
"order": "asc"
}
}
]
}
}
}
}'
谢谢,希望这有助于!!。