【问题标题】:is there match phrase any query in elasticsearch?elasticsearch中是否有匹配短语任何查询?
【发布时间】:2021-10-16 10:01:40
【问题描述】:

在 elasticsearch match_phrase 查询将匹配完整的短语。 match_phrase_prefix 查询将匹配短语作为前缀。
例如:

"my_field": "confidence ab" 

将匹配:“confidence above”和“confidence about”。

是否有“匹配短语任何”的查询,如下例:

"my_field": "dence ab" 

应该获取匹配项:“confidence above”和“confidence about”

谢谢

【问题讨论】:

    标签: elasticsearch elasticsearch-aggregation


    【解决方案1】:

    有两种方法可以做到这一点

    1. 通过在映射中应用keyword analyzer 将字段值按原样存储在ES 中=> 执行wildcard search (或)
    2. 使用ngram tokenizer 存储字段 => 根据您的要求搜索您的数据,使用或不使用standard or keyword search analyzers

    通配符搜索通常效率低下。

    请根据我的上述建议告诉我您的进度,以便我可以在需要时为您提供进一步的帮助

    【讨论】:

      【解决方案2】:

      您需要定义字段到关键字的映射,如下所示:

      PUT test
      {
        "mappings": {
          "properties": {
            "name":{
              "type": "keyword"
            }
          }
        }
      }
      

      然后使用通配符搜索该字段,如下所示:

      GET test/_search
      {
        "query": {
          "wildcard": {
            "name": {
              "value": "*dence ab*"
            }
          }
        }
      }
      

      如果您对此有任何问题,请告诉我。

      【讨论】:

        【解决方案3】:

        就您而言,最简单的解决方案是使用Query string query 或Simple query string query。后者对查询语法错误不太严格。

        首先,确保您的字段映射为text 类型。下面的示例为test-index 下名为my_field 的字段创建映射。

        {
          "test-index" : {
            "mappings" : {
              "properties" : {
                "my_field" : {
                  "type" : "text"
                }
              }
            }
          }
        }
        

        然后,对于搜索,使用带通配符的查询字符串查询。

        {
          "query": {
            "query_string": {
              "fields": ["my_field"], 
              "query": "*dence ab*"
            }
          }
        }
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2018-04-21
          • 1970-01-01
          • 1970-01-01
          • 2016-10-10
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多