我想知道是否有建议使用分析仪/过滤器来索引/搜索人名.
可能造成困难的名称示例:
马克斯
这是一个可以帮助您入门的分析器和过滤器。很难涵盖所有案例,但过滤器可以解决Fran\xc3\xa7ois 与 Francoisasciifolding案例的问题。
在下面的示例中,它将保留原始数据,以便对 Fran\xc3\xa7ois 和 Francois 的查询将解析为相同的结果集。
\n\n "analyzer": {\n "name_analyzer": {\n "type": "custom",\n "tokenizer": "standard",\n "filter": [\n "lowercase",\n "trim",\n "my_ascii_folding"\n ]\n }\n },\n "filter": {\n "my_ascii_folding" : {\n "type" : "asciifolding",\n "preserve_original" : true\n }\n }\nRun Code Online (Sandbox Code Playgroud)\n\n\n\n通过定义同义词过滤器,您可以在您的语言中定义一个通常相似的名称列表(Fran\xc3\xa7ois => Francois例如,可能是同义词文件中的一行),这将在短期内发挥作用。
最后,pattern_replace带有模式的字符过滤器"([A-Za-z]+)ae([A-Za-z]+)" => "$1a$2"可以将所有内容Verhaeven变成Verhaven
就像是...
\n\n "char_filter": {\n "ae_char_filter": {\n "type": "pattern_replace",\n "pattern": "([A-Za-z]+)ae([A-Za-z]+)",\n "replacement": "$1a$2"\n }\n }\nRun Code Online (Sandbox Code Playgroud)\n\n甚至Peter de Langhe 与 Peter delange 的对比也可以通过 char 过滤器来解决pattern_replace:
"char_filter": {\n "de_char_filter": {\n "type": "pattern_replace",\n "pattern": "([A-Za-z]+) de ([A-Za-z]+)",\n "replacement": "$1 de$2"\n }\n }\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
1280 次 |
| 最近记录: |