我用Whoosh来实现一个小型的本地搜索引擎。文件包括法语和英语。在
如您所知,重音符号(à
è
é
)在法语中经常使用。所以我不得不使用Whoosh Documentation建议的重音折叠来处理它们:
accent_analyzer = RegexAnalyzer(r'\w+') | LowercaseFilter() \
| StopFilter() | CharsetFilter(accent_map)
schema = Schema(path=ID(stored=True), content=TEXT(analyzer=accent_analyzer))
索引文档工作正常(没有错误)。在
但在搜索时,我没有找到包含重音符号的单词的结果。在
例如
让文档D
与{
logique
进行搜索会命中文档。在unité
进行搜索不会unite
进行搜索不会所以我假设索引编写器忽略了带有重音符号的单词,这就是为什么不管查询是否包含重音符号,它都不会显示针对这些单词的查询结果。在
只是提醒一下,我想要实现的是使用unité
和{
whoosh要求所有字符串都是unicode格式
Does whoosh require all strings to be unicode?
有关unicode中的重音,请参见http://unicodelookup.com/
(https://ss64.com/unicode-accents.html)
相关问题 更多 >
编程相关推荐