当前位置:  开发笔记 > 数据库 > 正文

通配符搜索在Kibana中不起作用

如何解决《通配符搜索在Kibana中不起作用》经验,为你挑选了2个好方法。

我有一个字段"警报",其中包含一个包含空格,数字和特殊字符的长字符串.我将此字段设置为"not_analyzed".使用通配符查询我可以发出如下查询并获得我想要的结果.

POST /test-index-snort2/type-snort/_search
{
  "query": {
    "wildcard": {
      "Alert": {
        "value": "ET CNC*"
      }
    }
  }
}

我想用Kibana来实现类似的搜索.但是,这样做不会返回结果.我在Kibana的查询显示如下:

Alert:"ET CNC*"

这反过来创建一个query_string查询,如下所示:

"query": {
    "filtered": {
      "query": {
        "bool": {
          "should": [
            {
              "query_string": {
                "query": "Alert:\"ET CNC*\""
              }
            }
          ]
        }
      },
      "filter": {
        "bool": {
          "must": [
            {
              "match_all": {}
            }
          ]
        }
      }
    }

有没有办法通过使用通配符查询的query_string查询在Kibana中获得相同的结果?

以下是Alert字段的映射和条目示例:

"Alert": {
        "type": "string",
        "index": "not_analyzed"
},

"Alert": "ET CNC Palevo Tracker Reported CnC Server TCP group 9 ",
"Alert": "ET CNC Palevo Tracker Reported CnC Server TCP group 10 ",
"Alert": "ET CNC Zeus Tracker Reported CnC Server TCP group 3 ",

Sgt B.. 15

感谢#elasticsearch中的polyfractal结束,我有一个答案.默认情况下,query_string将小写通配符输入.可以通过lowercase_expanded_terms = false设置禁用此功能.但是,没有办法在Kibana中设置它.

polyfractal建议我创建一个分析器来小写这个内容.这将允许我使用带有通配符的query_string,其限制是在facet结果中字段值将以小写形式出现,但_source将保留原始格式.对我来说,这很有效,是我正在努力的解决方案.

除IRC外:

 id set up the analyzer like this:  tokenizer:keyword, filters: [lowercase]
 that'll basically give you a lowercased `not_analyzed` field.  may also want to disable norms, since you prolly dont need them either

在Kibana 4中,**设置>高级**包含`query:queryString:options`,我添加了`"lowercase_expanded_terms":false`. (15认同)

语句"默认情况下,query_string将小写通配符输入"非常有用.但是,我很困惑.如果我想要一个Mozilla的httpUserAgent,我的查询可以是`httpUserAgent:*ozilla*`或者只是`*Mozilla*`.两个查询都返回包含"Mozilla"的结果,但是`httpUserAgent:*Mozilla*`什么都不返回.为什么是这样? (2认同)

@GrahamHannington:先生,你值得登顶! (2认同)


小智.. 10

尝试

{"wildcard":{"Alert":"ET CNC*"}}

在搜索栏中.您将在query_string中获得预期的格式.



1> Sgt B..:

感谢#elasticsearch中的polyfractal结束,我有一个答案.默认情况下,query_string将小写通配符输入.可以通过lowercase_expanded_terms = false设置禁用此功能.但是,没有办法在Kibana中设置它.

polyfractal建议我创建一个分析器来小写这个内容.这将允许我使用带有通配符的query_string,其限制是在facet结果中字段值将以小写形式出现,但_source将保留原始格式.对我来说,这很有效,是我正在努力的解决方案.

除IRC外:

 id set up the analyzer like this:  tokenizer:keyword, filters: [lowercase]
 that'll basically give you a lowercased `not_analyzed` field.  may also want to disable norms, since you prolly dont need them either


在Kibana 4中,**设置>高级**包含`query:queryString:options`,我添加了`"lowercase_expanded_terms":false`.
语句"默认情况下,query_string将小写通配符输入"非常有用.但是,我很困惑.如果我想要一个Mozilla的httpUserAgent,我的查询可以是`httpUserAgent:*ozilla*`或者只是`*Mozilla*`.两个查询都返回包含"Mozilla"的结果,但是`httpUserAgent:*Mozilla*`什么都不返回.为什么是这样?
@GrahamHannington:先生,你值得登顶!

2> 小智..:

尝试

{"wildcard":{"Alert":"ET CNC*"}}

在搜索栏中.您将在query_string中获得预期的格式.

推荐阅读
携手相约幸福
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有