Elasticsearch查询:问一个字,结果不全

pw136qt2  于 2023-10-17  发布在  ElasticSearch
关注(0)|答案(1)|浏览(131)

为了测试的目的,我设置了一个索引,只有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" } } ]         `

我的期望是,如果我不是很具体的搜索,我会得到更多的结果。
有什么想法吗?

osh3o9ms

osh3o9ms1#

由于你有默认的操作符“或”,搜索更多的单词,即。Kanister 20 Liter将返回比搜索单个单词更多的结果,即Kanister,因为查询将搜索

Kanister OR 20 OR Liter

这显然将匹配比Kanister更多的文档。
如果您希望提供的查询词越多,得到的结果越少,则需要将operator更改为and而不是or

相关问题