我在Elasticsearch中读到了关于提升的文章。我们可以在索引或查询时应用boosting。指数时间助推是一种静态助推,不建议使用。查询时间的增加本质上是动态的。提高查询时间是一种很好的首选方法。
我们还可以为油田增加动力。例如,我们正在多个字段中搜索一个术语。我们可以增强字段以更改文档的分数。
{
"match":{"title":{"query":"test string","boost":10}}
},
我读过关于体重的文章。
{
"filter": { "match": { "test": "cat" } },
"weight": 42
}
我的理解是为了改变相关性或分数而在字段上施加权重。Boost应用于查询,以便更改相关性或分数。
但我不确定体重和体重的差异。
有人能举个例子纠正我对体重和增重之间区别的理解吗?
1。 弹性搜索中的相关性调整正在改变字段之间的加权方式,或者在字段中给定值时提高相关性注意:必须至少有两个模式字段才能调整相关性
2。 权重应用于字段增强设置在字段之上,但它们应用于字段值。
3。 重量
-
每个字段的权重可能为0到10,10是最重要的权重。
卷曲-XGEThttps://host-2376rb.api.swiftype.com/api/as/v1/engines/national-parks-demo/search'
-H'内容类型:application/json'
-H'授权:承载搜索-soaewu2ye6uc45dr8mcd54v8'
-d'{"search_fields":{"标题":{"重量":10},"描述":{"重量":1.},"状态":{"重量":2.}},"查询":"山脉;}'
在这里,我们要求只返回结果中的三个字段:标题、描述和状态我们对每个字段进行加权:分别为10、1和2
4. 增强
-
有4种助推器。使用助推来增加相关性。
{"查询":{"dis_max":{"查询":[{"匹配":{"资格":{"查询":"社交媒体";,"boost":2.}}},{"匹配":{"cover_letter":"社交媒体"}}]}}}
在这里,我们为列出";社交媒体";在他们的简历中。这个例子在字段"0"中将查询匹配增加2;资格";相比之下,如果";社交媒体";显示在cover_letter字段中。
在这些例子中,无论怎样,权重都是硬固定到字段的,其中boost是硬固定在查询上的"社交媒体";但前提是它在资格字段内匹配。希望这能有所帮助
- 弹性搜索文档
- 一个非常好的Boosting示例,包括negative_boost、field_value_factor和基于日期的权重衰减
- 关于物质的其他非常有用的链接boost_1,boost_2,boost_3,boost_4,weight_1
字段之间进行加权,其中as boosting基于字段中的给定值
重量:每个字段具有0到10的可能权重,10是最重要的权重。例如:如果我们想让人们根据更重视标题的查询找到他们正在寻找的页面,那么我们需要对标题字段进行优先级排序。我们可以增加它的重量,使它比其他领域更有影响力。如果标题有更高的权重,人们会在顶部的标题中找到该页面所在的文档。
{
"search_fields":{
"title": {
"weight": 10
},
"subtitle": {
"weight": 5
},
"description": {
"weight": 2
}
},
"query": "Elastic"
}
在这里,我们请求弹性仅返回3个字段,即标题、副标题、描述,相应的权重为10、5、2。
增强:权重应用于字段。Boost设置在字段之上,但它们应用于字段值。当增加数字、日期或地理位置字段时,您需要定义一个函数参数和一个因子。根据升压的不同,函数有四种类型:线性、指数、高斯和对数。该函数和因子用于计算提升的相关性得分的一半,称为提升值。另一半是原始文档分数。它们结合在一起产生总体文档分数,该分数控制结果集的顺序
{
"query": "Elastic",
"boosts": {
"is_elastic_query": [
{
"type": "value",
"value": "true",
"operation": "multiply",
"factor": 10
}
]
}
}
这里我们假设is_elastic_query是一个值为true或false的字段。如果这个值是真的,我们就用因子10来提升它。
有关详细信息和示例,请找到以下链接:
https://www.elastic.co/guide/en/app-search/current/relevance-tuning-guide.html