具有特殊字符的弹性搜索

时间:2021-06-14 10:47:34

标签: asp.net-mvc

我正在使用 elasticsearch。例如,我正在进行字符搜索。把它想象成一个药名。我们可以很容易地找到一种叫做 A-ferin 的药物。但是,我们所说的 aferin,我们需要能够直接找到它,不需要任何特殊字符。

我应该做什么样的研究才能使用 .NET Core 实现这一目标?

1 个答案:

答案 0 :(得分:0)

您可以在索引此特定字段时使用自定义分析器,而在定义分析器时使用映射类型的 char_filters 来替换特殊字符。

获取/_分析

if e_mail.exists()

输出:

{
 "tokenizer": "keyword",
 "filter": [
        "asciifolding",
        "lowercase"
  ],
  "char_filter": [
    {
      "type": "mapping",
      "mappings": [
        "- => "

      ]
    }
  ],
  "text": "A-ferin"
}

对于完全匹配,您可以创建关键字作为子字段。