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