目前,我们在基于Django的多语言项目中使用Djapian + Xapian进行全文搜索。为了对每种语言使用词干,我们为每种语言创建不同的搜索索引。在Django中,我们根据用户的语言,使用哪个词干以及使用哪个搜索索引来决定。这工作正常,但是,Djapian似乎不再维护,代码分解越来越多。所以我们转向干草堆,但干草堆似乎并没有提供我们需要的那种动态干扰。
有没有办法在haystack 1.x版,2.x版或任何其他基于Python / Django的后端集成这种可能性?
答案 0 :(得分:0)
因此,据我了解,您可以正确索引内容,但不能使用正确的词干分析器进行搜索?或者您想在索引和搜索时更改词干分析器吗?
默认情况下,xapian-haystack会根据settings.HAYSTACK_XAPIAN_LANGUAGE
设置词干语言,但是为了在实例化SearchBackend
实例时进行搜索,您应该可以在构建搜索之前设置SearchBackend.language
改变词干语言。
请注意,我根本没有试过这个,我刚看了the code on github。
另外,我应该注意到,虽然干草堆很棒,但有时候直接使用xapian会更好。它记录得很好,对于复杂的xapian功能,它可能更快更容易。显然,如果您已经拥有自己的应用程序,情况并非如此,但如果您刚刚开始,则值得一试。 :)