在elasticsearch中使用通配符搜索哈希字符

时间:2017-12-11 09:19:02

标签: elasticsearch wildcard

我正在使用elasticsearch 6.0,我想查找所有对象,从哈希查询#开始。我执行以下查询

    {
  "bool" : {
    "must" : [
      {
        "wildcard" : {
          "message" : {
            "wildcard" : "#*",
            "boost" : 1.0
          }
        }
      }
    ],
    "adjust_pure_negative" : true,
    "boost" : 1.0
  }
}

我得到null结果。似乎# char是通配符中的特殊字符。你能帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:2)

您用于Activity B的字段数据类型是什么?默认情况下,message会对字符串进行标记,并使用哈希等字符进行标记化。如果您想使用哈希进行搜索,那么您可以将标记生成器更改为string,请参阅:https://www.elastic.co/guide/en/elasticsearch/reference/current/analysis-whitespace-tokenizer.html