美文网首页
Elasticsearch Query String 正则表达式

Elasticsearch Query String 正则表达式

作者: 歌哥居士 | 来源:发表于2019-07-05 09:29 被阅读0次
  1. 似乎不支持转义符,反正我试了不行,一个\\s可以用.{1}或者一个空格代替(我简单试了下空格的效率高点,数据量不大,测试不出来),\\d改用[0-9]

  2. 普通字段做分词只能匹配单个单词或者使用双引号进行词条(term)匹配,要想匹配整条数据可以用子字段keyword。

  3. 目前有感觉的keyword字段的应用场景就是这了,用来匹配整条内容。

  4. 官网说的正则表达式以^开头,以$结尾,加上之后就会发现匹配不到,去掉就可以。

  5. 测试语句。

GET filebeat-6.8.1-hercules-*/_search
{
  "query": {
    "bool": {
      "must": [
        {
          "query_string": {
            "query": "message.keyword:/.*spid [0-9]* mo json.*/",
            "minimum_should_match": "100%"
          }
        }
      ],
      "filter": {
        "range": {
          "@timestamp": {
            "gte": "2019-07-04T06:29:37.559Z",
            "lte": "2019-07-04T06:29:55.373Z"
          }
        }
      }
    }
  }, 
  "from": 0,
  "size": 10000,
  "sort": [
    {
      "@timestamp": {
        "order": "asc"
      }
    }
  ],
  "_source": ["beat.hostname","message","source","@timestamp"]
}

相关文章

网友评论

      本文标题:Elasticsearch Query String 正则表达式

      本文链接:https://www.haomeiwen.com/subject/afzjhctx.html