根据权重提升搜索结果
Boost search results according to weight
我是 elasticsearch 的新手,所以很难弄明白。
所以问题是我正在尝试搜索带有标签的内容,这些标签会有权重,就像,
{
tag: "tag name",
weight: 1
}
现在我正在尝试这个查询
{
"query": {
"bool": {
"should": [
{
"multi_match": {
"query": "do",
"fields": [
"name",
"tags.tag"
],
"type": "phrase_prefix"
}
}
]
}
}
}
但我不知道如何修改搜索,使搜索结果优先考虑标签权重。
谢谢。
不确定我是否理解正确你的问题...你想获取标签权重并用它影响搜索结果得分吗?如果是,请看一下script score。根据文档,您可以执行以下操作:
{
"query": {
"function_score": {
"query": {
"match": { "message": "elasticsearch" }
},
"script_score" : {
"script" : {
"source": "Math.log(2 + doc['likes'].value)"
}
}
}
}
}
我是 elasticsearch 的新手,所以很难弄明白。
所以问题是我正在尝试搜索带有标签的内容,这些标签会有权重,就像,
{
tag: "tag name",
weight: 1
}
现在我正在尝试这个查询
{
"query": {
"bool": {
"should": [
{
"multi_match": {
"query": "do",
"fields": [
"name",
"tags.tag"
],
"type": "phrase_prefix"
}
}
]
}
}
}
但我不知道如何修改搜索,使搜索结果优先考虑标签权重。
谢谢。
不确定我是否理解正确你的问题...你想获取标签权重并用它影响搜索结果得分吗?如果是,请看一下script score。根据文档,您可以执行以下操作:
{
"query": {
"function_score": {
"query": {
"match": { "message": "elasticsearch" }
},
"script_score" : {
"script" : {
"source": "Math.log(2 + doc['likes'].value)"
}
}
}
}
}