在弹性搜索中定义自定义标记器



这就是我试图在es

中定义自定义标记器的方式。"pattern":"[ s +]",

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

"pattern":""(s +)"",

注意在输出中我得到了额外的引号:"pattern""[-s+]",在开头和结尾,如果我们不需要使用任何转义字符,这工作得很好,但是当使用转义字符时,这会导致双引号被追加,有帮助吗?

是一个保留的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+]"
}
}
}
}
}

如果没有,请附上一个输入/输出示例,以便在我的末尾复制。

最新更新