Elasticsearch-如果不匹配,请使用下一个查询

slo*_*ver 5 elasticsearch

我已经在互联网上找了几天,但是找不到正确的答案。也许有人可以帮忙吗?

如果我在elasticsearch中的查询没有命中,则必须在其他字段中进行搜索。如果有结果,则仅显示这些结果而不在其他字段中进行搜索。我当前的解决方案是增强字段(ean,model,imodel),但在其他字段(title,desc)中进行搜索。因此,它返回数百个不相关的项目。

{
   "from": 0,
   "size": "16",
   "query": {
      "bool": {
         "should": [
            {
               "multi_match": {
                  "query": "63090300",
                  "fields": [
                     "ean^100",
                     "model^100",
                     "imodel^100"
                  ]
               }
            },
            {
               "match": {
                  "title_de": {
                     "query": "63090300",
                     "boost": "5"
                  }
               }
            },
            {
               "match": {
                  "title_de": {
                     "query": "63090300",
                     "type": "phrase",
                     "analyzer": "trigrams",
                     "fuzziness": "1"
                  }
               }
            },
            {
               "multi_match": {
                  "query": "63090300",
                  "fields": [
                     "desc_de"
                  ],
                  "operator": "and"
               }
            }
         ]
      }
   }
}
Run Code Online (Sandbox Code Playgroud)