elasticsearch - 在弹性搜索中定义自定义标记器
问题描述
这就是我试图在 es 中定义自定义标记器的方式
“模式”:“[\-s+]”,
但是当我运行它时,我得到如下所示的响应
"模式" : """[-s+]""",
注意在输出中我得到了额外的引号:“模式”:“”“[-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+]"
}
}
}
}
}
如果没有成功,请附上一个示例输入/输出以在我的最后重现。
推荐阅读
- gulp - Gulp 在构建期间下载远程 JSON 文件
- forms - Symfony 4 - 身份验证 1form 2tables
- c++ - CMake:将微存储库迁移到 monorepo 时的最佳结构?
- html - 如何使用 Notepad++ 或 Adobe Dreamweaver 从 HTML 文件中提取特定文本?
- r - R as.Date() 有两种不同的返回格式
- ios - iOS 扩展“找不到具有 bundleID 的有效应用程序”和“尝试查找服务扩展时遇到错误”
- java - 春季请求范围
- node.js - 如何使用express(nodejs)在服务器文件中拥有多个路由文件
- p5.js - p5.speech 设置默认语音不起作用
- azure-functions - 如何隐藏 Azure 函数 URL?