Django-haystack(xapian)自动完成给出不完整的结果

时间:2012-06-20 16:45:17

标签: django django-haystack xapian

我有一个运行django-haystack的django站点,xapian作为后端。我让我的自动完成工作,但它回馈了奇怪的结果。从searchqueryset返回的结果不完整。

例如,我有以下数据......

['test','test 1','test 2']

如果我输入“t”,“te”或“tes”,我什么也得不回来。但是,如果我键入'test',我会收到所有结果,如预期的那样。

我看起来像这样......

results = SearchQuerySet().autocomplete(auto=q).values('auto')

我的搜索索引看起来像这样......

class FacilityIndex(SearchIndex):
    text = CharField(document=True, use_template=True)
    created = DateTimeField(model_attr='created')
    auto = EdgeNgramField(model_attr='name')

    def get_model(self):
        return Facility

    def index_queryset(self):
        return self.get_model().objects.filter(created__lte=datetime.datetime.now())

任何提示都表示赞赏。感谢。

1 个答案:

答案 0 :(得分:1)

有点晚了,但你需要检查被索引的最小ngram大小。它很可能是4个字符,所以它不会与任何字符数少于此字符的字符匹配。我不是Xapian用户,所以我不知道如何更改该后端的配置选项。