为了测试的目的,我设置了一个索引,只有26个记录,包含所有产品与某种形式的罐(德语:Kanister)。
当我搜索“Kanister 20 Liter”时,我得到了22个结果。当我搜索“Kanister”时,我得到了10个结果。
` "query": {
"bool": {
"should": [
{
"multi_match": {
"query": "'.$search_term.'",
"fields": [
"NameA^100",
"NameB^50",
"PartNumber" ],
"operator": "or",
"type": "cross_fields"
}
}
] // Ende Should
}
},
"sort": [ { "_score": { "order": "desc" } } ] `
我的期望是,如果我不是很具体的搜索,我会得到更多的结果。
有什么想法吗?
1条答案
按热度按时间osh3o9ms1#
由于你有默认的操作符“或”,搜索更多的单词,即。
Kanister 20 Liter
将返回比搜索单个单词更多的结果,即Kanister
,因为查询将搜索这显然将匹配比
Kanister
更多的文档。如果您希望提供的查询词越多,得到的结果越少,则需要将
operator
更改为and
而不是or
。