【问题标题】:How to search word with special characters in Kibana - Elasticsearch如何在 Kibana 中搜索带有特殊字符的单词 - Elasticsearch
【发布时间】:2020-06-17 16:25:48
【问题描述】:

有谁知道我如何在消息中获取包含该值的值?如果我删除它搜索的 (-) 和 (/),如果我离开它们,查询不会返回任何内容。

不是……

GET my-index/_search
{
   "query": {
        "wildcard" : {
            "message": "*Z-01-123456-9/2020-1*"
        }
    }
}

不是……

GET my-index/_search
{
   "query": {
        "wildcard" : {
            "message": "*Z\\-01\\-123456\\-9\/2020\-1*"
        }
    }
}

【问题讨论】:

    标签: elasticsearch querydsl kibana-7


    【解决方案1】:

    映射:

    {
      "mappings": {
        "properties": {
          "message": {
            "type": "keyword"
          }
        }
      }
    }
    

    索引数据:

    {
        "message": "Z-01-123456-9/2020-1"
    }
    {
      "message": "K-01-123456-9/2020-12"
    }
    {
      "message": "Z-01-123456-9/2020-12"
    }
    

    搜索查询:

    前提条件是不分析字段。 “关键字”类型的值不会被分析,而是按原样编入索引。

    {
       "query": {
            "wildcard" : {
                "message": "*Z-01-123456-9/2020-1*"
            }
        }
    }
    

    搜索结果:

    "hits": [
                {
                    "_index": "test2",
                    "_type": "_doc",
                    "_id": "1",
                    "_score": 1.0,
                    "_source": {
                        "message": "Z-01-123456-9/2020-1"
                    }
                },
                {
                    "_index": "test2",
                    "_type": "_doc",
                    "_id": "3",
                    "_score": 1.0,
                    "_source": {
                        "message": "Z-01-123456-9/2020-12"
                    }
                }
            ]
    

    您甚至可以使用模式替换过滤器和自定义分析器忽略查询中的特殊字符。

    【讨论】:

    • @Max 您有机会查看我的回答吗,期待您的反馈,如果有帮助,请不要忘记点赞并接受 :)
    【解决方案2】:

    这是我的解决方案

    GET my-index/_search
    {
      "query": {
        "bool": {
          "must": [
            {
              "match_phrase": {"message": "Z-01-123456-9/2020-1"}
            },
            {
              "range": {
                "@timestamp": {
                  "gte": "2020-06-16T07:00:00",
                  "lt": "2020-06-23T00:00:00"
                }
              }
            }
          ]
        }
      }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-27
      • 2012-02-02
      • 2021-10-11
      相关资源
      最近更新 更多