整数字符串模糊匹配ElasticSearchkibana或条件

5jdjgkvh  于 2021-06-10  发布在  ElasticSearch
关注(0)|答案(0)|浏览(450)

我的ElasticSearch索引中有两个整数字段(我们称它们为int\u col\u 1和int\u col\u 2)和一个字符串字段(str\u col\u 1)。我想返回结果如果
任何整数字段都存在完全匹配
如果(1)不返回任何内容,我希望字符串与模糊逻辑匹配,并返回顶部结果
到目前为止,我所做的是:从任意整数列返回精确匹配。

{
  "query": {
    "bool": {
      "must": [
        {
          "query_string": {
            "query": "int_col_1:123"
          }
        }
      ]
    }
  }
}

对于字符串,我知道我可以使用以下方法获得模糊匹配:

{
  "query": {
    "fuzzy": {
      "str_col_1": {
        "value": "MyStrinK"
      }
    }
  }
}

为了简化它,考虑一下一旦我有了三个条件(分别是int\u col\u 1,int\u col\u 2,str\u col\u 1),我想把它们放在一种方式,如果整数不返回结果,那么就进行字符串模糊匹配。有条件地说:

if exact-match found with int_col_1:
     return result
else if exact-match found with int_col_2:
     return result
else if fuzzy-match found with str_col_1:
     return result**first result only**

我能够得到一个非常简单的解决方案,但我希望这在kql中。它不遵循上面提到的逻辑,以及基于模糊的不匹配str\u col\u 1。

GET my_index/_search?q=int_col_1:123%20int_col_2:456%20str_col_1=MyString

在kql中,有人能帮助理解这个逻辑吗?

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题