我遇到一个奇怪的问题 django-haystack + Solr :每个字段都会收到一个列表而不是实际的原始值。
索引编制后,这是我的Solr索引的摘录(从Solr admin粘贴):
{
"id":"forum.category.4",
"django_ct":["forum.category"],
"django_id":[4],
"text":["Divers"],
"name":["Divers"],
"url":["/forum/#divers"],
"url_str":["/forum/#divers"],
"name_str":["Divers"],
"django_ct_str":["forum.category"],
"text_str":["Divers"]},
如您所见,每个相关数据都以1元素列表编制索引,这使得无法进一步查询。
这是我的索引定义:
class CategoryIndex(indexes.SearchIndex, indexes.Indexable):
text = indexes.CharField(document=True, model_attr='name')
name = indexes.CharField(model_attr='name')
url = indexes.CharField(indexed=False)
def get_model(self):
return Category
def prepare_url(self, obj):
return obj.get_absolute_url()
有什么建议吗?先谢谢。
答案 0 :(得分:1)
如果您尚未在Solr中为集合设置显式架构,并且您正在使用数据驱动的配置集(也称为无架构模式),则默认情况下所有字段都是多值的。使用正确的架构并将字段设置为multiValued="false"
以获得您正在寻找的行为。
django-haystack you can use the build_solr_schema
command至manage.py
。