elasticsearch - ES如何多次随机查询而不重复结果?
问题描述
弹性搜索 5.0 版
我有要求随机查询多次用户信息,但最终结果不能有重复数据。
例如,
第一个随机查询结果
用户 0 用户 1 用户 2
第二次随机查询结果
用户 0 用户 3 用户 4
User0 是重复的。
这是我的随机查询,我该如何修改?
{
"size" : 10,
"query" : {
"match_all" : {
"boost" : 1.0
}
},
"_source" : {
"includes" : [
],
"excludes" : [ ]
},
"sort" : [
{
"_script" : {
"script" : {
"inline" : "Math.random()",
"lang" : "painless"
},
"type" : "number",
"order" : "asc"
}
}
],
"ext" : { }
}
解决方案
您可以使用bool must_not查询和id查询来删除先前检索到的文档的 id。
{
"query": {
"match_all": {
"boost": 1.0
},
"bool": {
"must_not": [
{
"ids": {
"values": [The set of previous Ids]
}
}
]
}
},
...
}
推荐阅读
- flutter - 发送json数据flutter post
- pytorch - 无法将 numpy 数组转换为 pytorch 张量
- reactjs - React Native 中的堆栈导航
- html - 合并两个 div 以具有相同的线性渐变和阴影
- c# - 如何编写单元测试用例 IHttpClientFactory
- ubuntu - 用于通过 HTTPS 进行 RPC 的 Nginx 反向代理 - 问题已彻底检查和更新
- python - 在 Python 中将使用 Pickle 序列化的对象转换为字符串
- c# - 当我在 WinForms 中单击富文本框中的超链接时,我试图检测鼠标单击的位置,我该怎么做?
- vba - Web自动化IFrame麻烦
- swift - 即使设备支持 Apple Pay,Apple Pay 按钮也不会显示