嗖不要搜索带口音的单词
Whoosh not searching words with accent
我正在使用 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/
我正在使用 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/