首页 > 解决方案 > 在弹性搜索中定义自定义标记器

问题描述

这就是我试图在 es 中定义自定义标记器的方式

“模式”:“[\-s+]”,

但是当我运行它时,我得到如下所示的响应

"模式" : """[-s+]""",

注意在输出中我得到了额外的引号:“模式”:“”“[-s+]”“”,在开始和结束时,如果我们不必使用任何转义字符,这工作正常,但是当使用转义字符时,这个导致附加双引号,有什么帮助吗?

标签: elasticsearchlogstashkibana

解决方案


\是一个保留的 Lucene 运算符,你必须将它转义。

https://www.elastic.co/guide/en/elasticsearch/reference/current/regexp-syntax.html

请尝试这种方式

PUT test_varun
{
  "settings": {
    "analysis": {
      "analyzer": {
        "my_analyzer": {
          "tokenizer": "my_tokenizer"
        }
      },
      "tokenizer": {
        "my_tokenizer": {
          "type": "pattern",
          "pattern":"[\\-s+]"
        }
      }
    }
  }
}

如果没有成功,请附上一个示例输入/输出以在我的最后重现。


推荐阅读