Elasticsearch 等于 SQL %Like%

Tos*_*shi 4 sql search elasticsearch sql-like elasticsearch-5

这里开始,我向自己询问此类查询的 elasticsearch 语法:

WHERE text LIKE "%quick%"
  AND text LIKE "%brown%"
  AND text LIKE "%fox%" 
Run Code Online (Sandbox Code Playgroud)

我的尝试(不幸的是没有成功)

  "query": {
    "bool": {
      "filter": [
        {
          "bool": {
            "must": [
              {
                "terms": {
                  "text": [
                    "*quick*",
                    "*brown*",
                    "*fox*"
                  ]
                }
              }
            ]
          }
        }
      ]
    }
  }
Run Code Online (Sandbox Code Playgroud)

sam*_*sam 9

尝试使用boolwildcard执行这样的查询。

{
    "query": {
        "bool": {
            "must": [
                {
                    "wildcard": {
                        "text": "*quick*"
                    }
                },
                {
                    "wildcard": {
                        "text": "*brown*"
                    }
                },
                {
                    "wildcard": {
                        "text": "*fox*"
                    }
                }
            ]
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

通配符查询匹配具有匹配通配符表达式(未分析)的字段的文档。支持的通配符是 * 匹配任何字符序列(包括空的)和 ? 匹配任何单个字符。