elasticsearch - 如何在 elasticserch 查询中获得 3 个随机搜索结果
问题描述
我有我的弹性搜索查询,它返回发布日期范围之间的记录:
{
query : {
bool: {
filter: [
],
must: {
range: {
publishedDate: {
gte: "2018-11-01",
lte: "2019-03-30"
}
}
}
}
}
from: 0,
size: 3,
}
每次发送此查询时,我都需要显示 3 个随机结果
在弹性搜索文档中提到我可以发送一个种子来获得随机结果:
遵循文档后,我将查询更新为:
{
"query" : {
"bool": {
"filter": [
],
"must": {
"range": {
"publishedDate": {
"gte": "2018-11-01",
"lte": "2019-03-30"
}
}
}
},
"function_score": {
"functions": [
{
"random_score": {
"seed": "123123123"
}
}
]
}
},
"from": 0,
"size": 3
}
但它不起作用(说查询格式错误),任何人都可以建议如何更正此查询以返回 3 个随机搜索结果。
解决方案
如果您只需要返回随机结果,您可以将查询重组为类似于以下内容
{
"query": {
"function_score": {
"query": {
"range": {
"publishedDate": {
"gte": "2018-11-01",
"lte": "2019-03-30"
}
}
},
"boost": "5",
"random_score": {},
"boost_mode": "multiply"
}
},
"from": 0,
"size": 3
}
从弹性文档修改 - https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-function-score-query.html
推荐阅读
- stm32 - STM32 HAL 循环停滞
- azure-data-factory - 映射数据流可以使用参数化 Parquet 数据集吗?
- python - 我可以在哪里托管我的 whatsapp 硒自动化?
- ios - Swift Dispatch Main 同步使 UIView 动画混乱
- mongodb - MongoTemplate.getCollectionNames 和 MongoTemplate,collectionExists 方法在连接到 Azure Cosmos DB 时抛出 StringIndexOutOfBoundsException
- python - Python:dict的键/值对子集确定要调用的函数
- javascript - 提供角度的功能
- python - ValueError:条件预期的布尔数组,而不是对象
- python-3.x - Python 正则表达式在 2 个边缘案例上失败
- postgresql - PostgresSQL嵌套jsonb更新复杂键/值对的值