例如,在弹性搜索文档中,字符串存储为 \\(\\log_4(3x^2+11x)=1\\) 我想让它工作的搜索查询是 (log_4(3x^2+ 11x)=1)。
完成这项工作的最佳方法是什么?
例如,在弹性搜索文档中,字符串存储为 \\(\\log_4(3x^2+11x)=1\\) 我想让它工作的搜索查询是 (log_4(3x^2+ 11x)=1)。
完成这项工作的最佳方法是什么?
您可以使用可以替换with的pattern_replace char 过滤器,下面是工作示例。\\
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
}
]
}