多语言全文搜索,包括Django/Python中的词干



目前,我们在基于Django的多语言项目中使用Djapian+Xapian进行全文搜索。为了对每种语言使用词干,我们为每种语言创建了不同的搜索索引。在Django中,我们根据用户的语言来决定使用哪种词干和哪种搜索索引。这很好,然而,Djapian似乎不再得到维护,代码也越来越分解。所以我们改用干草堆,但干草堆似乎没有提供我们需要的那种动态堵塞。

有没有任何方法可以集成这种可能性,无论是在haystack 1.x版本、2.x版本还是在任何其他基于Python/Django的后端?

所以,据我所知,您可以正确地对内容进行索引,但不能使用正确的词干生成器进行搜索?还是在索引和搜索时要更改词干分析器?

xapian haystack默认情况下会基于settings.HAYSTACK_XAPIAN_LANGUAGE设置词干语言,但对于在实例化SearchBackend实例时进行搜索,您应该能够在构造搜索以更改词干语言之前设置SearchBackend.language

请注意,我根本没有尝试过,我只是看了github上的代码。

此外,我应该注意,尽管haystack很棒,但有时直接使用xapian更好。它有足够好的文档记录,对于复杂的、只有xapian的功能,它可能更快更容易。显然,如果你已经有了应用程序,情况就不是这样了,但如果你刚刚开始,这是值得的。:)

最新更新