Elasticsearch - 如果没有匹配则使用下一个查询

时间:2016-01-23 09:11:18

标签: 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"
               }
            }
         ]
      }
   }
}

0 个答案:

没有答案