类似正则表达式的弹性搜索查询

elasticsearch query like regex

我用的是kibana-4.5.0,elasticsearch 2.3.2

我想在 kibana 中通过这个查询“*'ve have”找到特定的句子。 它在 kibana 中不起作用。

所以,我在 kibana 中尝试了 span_near 过滤器。

{
  "query": {
    "span_near": {
      "clauses": [
        {
          "span_term": {
            "items": "*ve"
          }
        },
        {
          "span_term": {
            "items": "have"
          }
        }
      ],
      "in_order": true,
      "slop": 1
    }
  }
}

同样,它没有用。

所以,我尝试在 head 插件中搜索查询。

http://localhost:9200/_search
{"query" : {
    "span_near" : {
      "clauses" : [
        { "span_term" : { "items" : "we've" } },
        { "span_term" : { "items" : "have" } }
      ],
      "slop" : 1,
      "in_order" : true
    }
  }
}

我使用了默认设置。所以我想我以前默认使用分析仪。

此外,我尝试了正则表达式查询,但它对我也不起作用。

我该怎么办?

"we've have" 或 "i've have" 或 "he've have"

那不是我的希望。我希望像“*有”

感谢阅读

不可能像你那样在ES中使用正则表达式,但你可以在elasticsearch中使用正则表达式:https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-regexp-query.html