我有一个案例,我想我使用elasticsearch作为一个文本搜索引擎相当长的html阿拉伯语文本。
搜索效果很好,除了带有音调符号的单词,它似乎无法识别它们。
例如:
这句话:'وَهَكَذَا في كُلّ عَقْدٍ' (这是存储在数据库中的文件)
与此完全相同:'وهكذا في كل عقد' (这是用户为搜索输入的内容)
除了添加的变音符号外,情况完全相同,这些符号在计算机中作为单独的字符处理(但只是呈现在其他字符之上)。
我想知道有没有办法让搜索忽略所有的音调符号。
我考虑的第一种方法是,是否有一种方法可以告诉elasticsearch在索引时完全忽略音调符号(有点像stopwords?)。
如果不是,在文档中有另一个字段(文本\u规范化),在将其添加到elasticsearch之前手动删除音调符号,这样做是否有效?
1条答案
按热度按时间hgtggwj01#
为了解决您的问题,您可以使用阿拉伯语\u规范化标记过滤器,它将在索引之前从文本中删除音调符号。您需要定义一个自定义分析器,并且您的分析器应该如下所示:
analyzer api检查:
分析仪结果:
如你所见,音调符号被删除了。更多信息请点击这里。