2017-05-30 113 views
0

我正在使用Django-haystack 2.4.1。我正在尝试对IntegerField进行部分搜索。我有一个item_id在我的searchindex提交。例如,我想搜索23456,2345,234,23,2所有这些。这不是与查询django haystack部分搜索IntegerField

SearchQuerySet().filter(item_id__icontains=234).models(MyModel)

工作谁能帮我这个吧。

回答

0

在您的search_indexes.py作为您的文档字段的字段应该是EdgeNgramField

class ModelIndex(indexes.SearchIndex, indexes.Indexable): 
    indexed_text = indexes.EdgeNgramField(document=True, use_template=True) 

显然你应该在每次查询之前更新索引。

+0

已经在我的search_indexes.py文件中有这样的文本字段,像这样:text = indexes.EdgeNgramFiled(document = True,use_template = True)'。即使查询类似于SearchQuerySet().filter(text = 234).models(MyModel)对我不起作用 – Yashwanth

+0

过滤只是模型本身的工作吗? –

+0

只用模型进行过滤就可以了。 'Mymodel.objects.filter(id__icontains = 234)'但没有SearchQuerySet()' – Yashwanth