Haystack Whoosh 拼写建议过于贪婪

2 投票
1 回答
1077 浏览
提问于 2025-04-15 15:54

这个问题是关于Django Haystack的,使用的是Whoosh作为后端。我想在搜索中使用拼写建议,但问题是它建议的内容太多了。

假设我有两个模型:苹果和橙子。

如果我有这样的代码:

result = SearchQuerySet().models(Apples).filter(
    content=escaped_value).spelling_suggestion(escaped_value)

它实际上会查看橙子的模型,并从中返回拼写建议!看起来models(Apples)的限制没有起作用。

我为这两个模型都设置了索引,并将“text”属性设置为document=True。我的拼写建议功能是开启的。我使用Whoosh作为后端。

1 个回答

2

这个问题是因为Haystack会根据那些设置了document=True的字段来生成拼写建议(在我的情况中,这些字段是所有模型中的主要搜索字段,并且它们的名字都是一样的)。所以它根本不关心具体的模型,总是会在整个知识库中进行搜索。

我在Haystack的讨论板上提交了一个问题,并且提到了这个情况。开发者非常乐于助人:http://groups.google.com/group/django-haystack/browse_thread/thread/025e5ed42ccde8b9#

问题链接:http://github.com/toastdriven/django-haystack/issues/#issue/124

撰写回答