【发布时间】:2020-02-02 16:56:01
【问题描述】:
我是 elasticsearch 新手,无法在结果中获得我想要的分数。
这是迄今为止我得到的最佳工作选择。
$options['query']['bool']['should'][] = [
'match' => [
'my_long_textfield' => [
'query' => $query,
'operator' => 'AND',
'boost' => 15
]
]
];
$options['query']['bool']['should'][] = [
'match' => [
'my_long_textfield' => [
'query' => $query,
'minimum_should_match' => '80%'
]
]
];
示例数据集(两行):
my_long_textfield:
"some cars move fast"
"a car can move quickly"
如果我的查询是“car fast”,它将给第二行最高分,因为第一行包含“car”而不是“cars”。
我想给单词匹配以及部分单词打分。
因此,对于查询“car fast”,我们在单词“fast”上有一个匹配项,而“car”几乎是第一行中的一个单词匹配项。这应该比第二行只有一个单词匹配的得分更高。
如果有人能指出我正确的方向,将不胜感激。
【问题讨论】:
标签: php elasticsearch search