我用一个带有自定义脚本的函数score查询解决了这个问题。
此脚本将成为完整的搜索项,并执行两项操作:
根据值的长度设置分数(因此这里的“ohne griffloch”比“griffloch”大,所以更好)。
第二个(可选,但对我来说是好事)是,它使用文本中值的位置。
我需要做的是,删除值数组并将索引中的每个值作为一个文档。
"functions": [
{
"script_score": {
"script": {
"source": "def v=doc['filterValue'].value; def score = 10000; score += v.length(); score -= \"ordner ohne griffloch\".indexOf(v)*50;",
"lang": "painless"
}
}
}
],
"score_mode": "multiply",
"boost_mode": "replace",
"max_boost": 3.4028235e+38,
"boost": 1
}
}