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

Search by hash character using wildcard in elasticsearch

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

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

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

您用于 message 的字段数据类型是什么?默认情况下 string 对字符串进行分词,使用散列等字符进行分词。如果您想使用散列进行搜索,则可以将分词器更改为 whitespace,请参阅:https://www.elastic.co/guide/en/elasticsearch/reference/current/analysis-whitespace-tokenizer.html