SOLR与haystack查询没有结果,而数据确实存在

时间:2011-09-08 08:40:33

标签: django solr django-haystack

我有一个配置好的SOLR服务器,它将所有结果编入索引。 查询所有结果确实给出了记录。

./manage.py shell
>>> from haystack.query import SearchQuerySet
>>> SearchQuerySet().all().count()
2086
>>> SearchQuerySet().all()[1000].result_top_level_category
u'tuinieren'

当我开始查询这些记录时,我没有得到任何结果。

>>> SearchQuerySet().all().filter(result_top_level_category='tuinieren').count()
0
>>> SearchQuerySet().all().filter(result_top_level_category=u'tuinieren').count()
0

你能给我一个解决这个问题的线索或解决方案吗?


SOLR架构由manage.py build_solr_schema生成。这是result_top_level_category字段的相关行:

<field name="result_top_level_category" type="string" indexed="false"
       stored="true" multiValued="false" />
在SOLR架构更新后,似乎发生了问题;另一个字段名称被重新引入。虽然在all()查询中返回了此字段名。

1 个答案:

答案 0 :(得分:0)

有时单独询问一个问题就明白了!

查看SOLR模式文档(http://wiki.apache.org/solr/SchemaXml),很明显该字段需要被索引为可查询或可排序。

result_top_level_category = CharField(indexed=True, faceted=True,
                                      model_attr='top_level_category', null=True)

现在可以查询特定字段。