elasticsearch - 用于提升特定数据的 Elasticsearch 查询
问题描述
我有一个示例购物应用程序,我想使用 elasticsearch 创建搜索页面,当用户搜索特定产品(例如“Iphone”)然后显示所有 iphone 产品。但是,我想推广产品以显示在搜索结果之上。这更像是促销产品,当我为特定产品促销时,它会显示在搜索结果的顶部。
elasticsearch如何做到这一点?
解决方案
在 Elasticsearch 中有很多关于如何实现这一点的文档,因为这是搜索者的典型需求。我会建议你尝试制作自己的提升相关性功能。
喜欢:
{
"query": {
"function_score": {
"filter": {
"term": { "content": "mobile" }
},
"functions": [
{
"filter": { "term": { "brand": "Apple" }},
"weight": 4
}
],
"score_mode": "sum",
}
}
}
这里的文档是最新的:FunctionScoring
另外作为提示,可能绝对值得看一下Relevance 章节并了解 ES 如何尝试按相关性对结果进行排序。
推荐阅读
- flutter - Dart 错误 RangeError(索引):无效值:不在 0..2 范围内,包括:3
- javascript - 动态拖放 Javascript
- python - 使用 Python 根据文件名创建文件夹
- r - 如何改变线条的斜率
- python - 如何在序列化程序中从多到多获取 object_set?
- r - 编写一个函数以返回电话号码中的第 n 组数字
- php - PHP - 为什么回声打印它像零?
- php - 如何显示来自不同数据表的数据?一对多关系
- selenium - NightwatchJS 在本地 selenium 网格上设置
- javascript - 如何在 Node.js 中声明一个静态数组?