elasticsearch - 在 Elasticsearch 中推广结果
问题描述
如果特定字段具有特定值,我在文档中搜索了一种提升 ElasticSearch 结果的方法,但我没有找到任何好的做法,例如,如果用户搜索查询我有一个住在巴黎的用户希望与巴黎相关的文件首先出现或只是被提升。
解决方案
这有很多,但你想研究“提升”。这可以在 映射级别或查询级别完成。
映射示例:
{
"mappings": {
"_doc": {
"properties": {
"location": {
"type": "keyword",
"boost": 2 <--- 2x boost to the final score
}
}
}
}
}
查询示例:
GET /_search
{
"query": {
"bool": {
"must": {
"match": {
"content": {
"query": "full text search",
"operator": "and"
}
}
},
"should": [
{ "term": {
"location": {
"value": "xxx",
"boost": 3 <--- 3x boost if the location matches
}
}}
]
}
}
}
推荐阅读
- angular - 为什么类绑定不适用于 ngOnChanges?
- python - 谷歌应用引擎用户认证(python 3.7)
- python - 在我的抓取蜘蛛中,我的解析模块不工作,它不打印
- javascript - js - 为每个选择显示不同的文本行的函数
- javascript - 是否可以仅针对 https 发起的请求升级不安全请求
- keras - 如何创建从中间层开始并扩展到输出层的 keras '解码器模型'
- xamarin.forms - InvokeCommand() 不触发
- flutter - 处理 AlertBox Flutter
- pyspark - 处理 pyspark 中的 JSON 模式更改
- django - ValueError:无法分配:必须是实例