繁体   English   中英

elasticsearch 一个查询中的多个通配符

[英]Multiple wildcards in one query in elasticsearch

curl localhost:9200/tweet/posts/_search -d '{
  "query": {
    "and": [
      {
        "wildcard": {
          "_all": "*pet*"
        }
      },
      {
        "wildcard": {
          "_all": "*rom*"
        }
      }
    ]
  }
}'

这给了我一个解析异常。 我想运行一个带有 AND 条件的 MySQL like(%test%)类型的查询。 elasticsearch有没有其他好的办法。

也许是这样的?

{
  "query": {
    "bool": {
      "must": [
        {
          "wildcard": {
            "_all": {
              "value": "*pet*"
            }
          }
        },
        {
          "wildcard": {
            "_all": {
              "value": "*rom*"
            }
          }
        }
      ]
    }
  }
}

dis_max 查询可以支持通配符查询而不是 bool。 请看这里: https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-dis-max-query.html我会这样写:

{
 "query": {
     "dis_max": {
         "queries": [
               {"wildcard": {
                 "_all": {"value" : "*pet*"}
               }},
               {"wildcard": {
                 "_all": {"value" : "*rom*"}
               }}
           ]
     }
   }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM