我阅读了有关在 Elasticsearch 中提升的内容。我们可以在索引或查询时应用 boosting。索引时间提升是一种静态提升,不建议使用。查询时间提升本质上是动态的。查询时间提升是很好的首选方法。
我们还可以为字段添加增强功能。例如,我们在多个字段中搜索一个术语。我们可以提升一个字段来改变文档的分数。
{
"match":{"title":{"query":"test string","boost":10}}
},
我读过体重。
{
"filter": { "match": { "test": "cat" } },
"weight": 42
}
我的理解是在字段上应用权重以改变相关性或分数。
Boost 应用于查询以更改相关性或分数。
但我不确定重量和提升的差异。
有人可以通过一些例子纠正我理解重量和提升之间的区别吗?
最佳答案
1. Elasticsearch 中的相关性调整正在改变字段相互加权的方式,或者在给定字段内的值的情况下提高相关性。注意:您必须至少有两个架构字段来调整相关性。
2. 重量 适用于字段 . 提升 设置在字段之上,但它们应用于 字段值 .
3. 重量
curl -X GET 'https://host-2376rb.api.swiftype.com/api/as/v1/engines/national-parks-demo/search'
-H '内容类型:应用程序/json'
-H '授权:承载搜索-soaewu2ye6uc45dr8mcd54v8'
-d'{
“搜索字段”:{
“标题”: {
“重量”:10
},
“描述”: {
“重量”:1
},
“状态”: {
“重量”:2
}
},
“查询”:“山脉”
}'
这里我们要求只返回结果中的三个字段:标题、描述和状态。 我们对每个字段进行加权:分别为 10、1 和 2。
4. 提升
{
“询问” : {
“dis_max”:{
“查询”:[
{ “比赛” :
{“资格”:
{
“查询”:“社交媒体”,
“提升”:2
}
}
},
{ “比赛” :
{“cover_letter”:“社交媒体”}
}
]
}
}
}
在这里,我们为 disjunction max query 添加了一个提升。对于在简历中列出“社交媒体”的求职者。与如果“社交媒体”出现在 cover_letter 字段中时没有提升相比,此示例将“资格”字段中的查询匹配提高 2。
在这些示例中,无论如何,权重都很难固定到字段上,其中提升很难固定在查询“社交媒体”上,但前提是它在资格字段内匹配。希望这会有所帮助..
关于elasticsearch - Elasticsearch 中权重和提升的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61956183/