我正在使用自定义 NGRAM 分析器,它有一个 ngram 分词器。我还使用了小写过滤器。该查询对于没有字符的搜索运行良好。但是当我搜索某些符号时,它失败了。由于我使用了小写分词器,Elasticsearch 不会分析符号。我知道空格标记器可以帮助我解决这个问题。如何在单个分析器中使用两个分词器?下面是映射:
{
"settings": {
"analysis": {
"analyzer": {
"my_analyzer": {
"tokenizer":"my_tokenizer",
"filter":"lowercase"
}
},
"tokenizer": {
"my_tokenizer": {
"type": "ngram",
"min_gram": 3,
"max_gram": 3,
"token_chars": [
"letter",
"digit"
]
}
}
}
},
"mappings": {
"_doc": {
"properties": {
"title": {
"type": "text",
"analyzer": "my_analyzer"
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
我有办法解决这个问题吗?