例如,在弹性搜索文档中,字符串存储为\\(\\ log_4(3x ^ 2 + 11x)= 1 \\)我要使其工作的搜索查询是(log_4(3x ^ 2 + 11x)= 1)。
使这项工作最好的方法是什么?
您可以使用pattern_replace炭过滤器可以代替\\
用empty string
,下面是工作的例子。
使用pattern_replace char过滤器的自定义分析器的索引设置
{
"settings": {
"analysis": {
"analyzer": {
"my_analyzer": {
"filter": [
"lowercase"
],
"char_filter": [
"my_char_filter"
],
"type": "custom",
"tokenizer": "whitespace"
}
},
"char_filter": {
"my_char_filter": {
"type": "pattern_replace",
"pattern": "\\\\(.*?)",
"replacement": ""
}
}
}
}
}
分析API
{
"analyzer": "my_analyzer",
"text": "\\(\\log_4(3x^2+11x)=1\\)"
}
生成的令牌
{
"tokens": [
{
"token": "(log_4(3x^2+11x)=1)",
"start_offset": 1,
"end_offset": 22,
"type": "word",
"position": 0
}
]
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句