我有一个配置好的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()
查询中返回了此字段名。
答案 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)
现在可以查询特定字段。