Haystack中的确切查询匹配无效

时间:2016-06-15 14:55:57

标签: django solr django-haystack

我有一个产品索引,关键字为多值字段

class ProductIndex(indexes.SearchIndex, indexes.Indexable):
    text = indexes.CharField(document=True, use_template=True)
    keywords = indexes.MultiValueField(faceted=True)

    def prepare_keywords(self, product):
        return [p.name for p in product.tags.all()]

我需要找到关键字与lightning完全相同的产品。我使用这个查询 -

SearchQuerySet().models(Product).filter(keywords__exact=u'Lighting')

但是这也给了我lightning作为这个词的一部分的产品。喜欢

print SearchQuerySet().models(Product).filter(keywords__exact=u'Lighting')[1].keywords

[u'LED lighting', u'Optic Lighting']

这样做的正确方法是什么?

1 个答案:

答案 0 :(得分:0)

只看example/solr/collection1/conf/schema.conf

<field name="keywords" type="text_en" indexed="true" stored="true" multiValued="true" />

我认为确切只对字符串字段起作用而不是文本字段。您必须编辑此配置并创建关键字字段,如下所示:

<field name="keywords" type="string" indexed="true" stored="true" multiValued="true" />