我正在使用 elasticsearch。例如,我正在进行字符搜索。把它想象成一个药名。我们可以很容易地找到一种叫做 A-ferin 的药物。但是,我们所说的 aferin,我们需要能够直接找到它,不需要任何特殊字符。
我应该做什么样的研究才能使用 .NET Core 实现这一目标?
答案 0 :(得分:0)
您可以在索引此特定字段时使用自定义分析器,而在定义分析器时使用映射类型的 char_filters 来替换特殊字符。
获取/_分析
if e_mail.exists()
输出:
{
"tokenizer": "keyword",
"filter": [
"asciifolding",
"lowercase"
],
"char_filter": [
{
"type": "mapping",
"mappings": [
"- => "
]
}
],
"text": "A-ferin"
}
对于完全匹配,您可以创建关键字作为子字段。