美文网首页
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