我正在使用 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
与 content = u'unité logique'
:logique
搜索命中文档。 unité
搜索没有。 unite
搜索没有。 所以我认为索引编写者忽略了带重音的单词,这就是为什么无论查询是否包含重音,它都不会显示针对这些单词的查询结果。
只是提醒一下,我想要实现的是使用
D
和 unité
这两个词点击文档 unite
。 最佳答案
whoosh 要求所有字符串都为 unicode
Does whoosh require all strings to be unicode?
对于 unicode 中的重音,请参阅 http://unicodelookup.com/
( https://ss64.com/unicode-accents.html )
关于python - Whoosh 不搜索带有重音的单词,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42769299/