Python Django Haystack精确查询未按预期运行
我正在使用django haystack与嗖嗖声的精确匹配来过滤,并得到意想不到的结果 search_index.py views.py 我希望上面的搜索是这样的:按查询搜索,其中asset_type等于brand_asset,brand为b.name。所以一切都在一起了 事实上,品牌并不精确。例如,如果我选择卡夫奶酪或卡夫macn奶酪,我会得到相同的结果,即使这是两个不同的品牌 TLDR-我的搜索不限于搜索索引文件中的品牌字段 使现代化 我也用Elasticsearch得到了同样的结果Python Django Haystack精确查询未按预期运行,python,django,django-haystack,whoosh,Python,Django,Django Haystack,Whoosh,我正在使用django haystack与嗖嗖声的精确匹配来过滤,并得到意想不到的结果 search_index.py views.py 我希望上面的搜索是这样的:按查询搜索,其中asset_type等于brand_asset,brand为b.name。所以一切都在一起了 事实上,品牌并不精确。例如,如果我选择卡夫奶酪或卡夫macn奶酪,我会得到相同的结果,即使这是两个不同的品牌 TLDR-我的搜索不限于搜索索引文件中的品牌字段 使现代化 我也用Elasticsearch得到了同样的结果 cla
class AssetIndex(indexes.SearchIndex, indexes.Indexable):
text = indexes.CharField(document=True, use_template=True)
asset_type = indexes.CharField(model_attr='asset_type')
brand = indexes.CharField(model_attr='brand')
def prepare_brand(self, obj):
return obj.brand.name
def index_queryset(self, using=None):
"""Used when the entire index for model is updated."""
return self.get_model().objects.filter(created_on__lte=datetime.datetime.now())
assets = SearchQuerySet().models(Asset)
assets = assets.filter(
content=query, asset_type=Exact('brand_asset'))
assets = assets.filter(brand=Exact(b.name))