對不起noobish的問題(我是Django的新手),但我想知道如何使用Django,Haystack和Solr只從一個字段檢索數據。例如:Django Haystack只從solr中檢索出一個字段
我有兩個型號:
class Category(models.Model):
name = models.CharField("Category name", max_length=255)
class Post(models.Model):
title = models.CharField("Post title", max_length=255)
category = models.ManyToManyField(Category, related_name="category")
我索引Post模型是這樣的:
class PostIndex(SearchIndex):
text = CharField(document=True, use_template=True)
title = EdgeNgramField(model_attr='title')
category = FacetMultiValueField()
def get_model(self):
return Post
def prepare_category(self, obj):
return obj.category.all()
def index_queryset(self):
return self.get_model().objects.all()
site.register(Post, PostIndex)
問題來了:我怎樣才能用草堆只檢索類別字段。我想要的類別顯示爲與數方面,但沒有使用:
url(r'^search/$', FacetedSearchView(form_class=FacetedSearchForm, searchqueryset=sqs), name='haystack_search'),
在我url.py.
我使用我自己的觀點來進行搜索。預先感謝您的回答!
我使用:
- 的Django 1.4
- 草堆1.2.7
- 的Solr 3.6.1
我在django shell中試過這個,它似乎導致錯誤:使用'*:*'查詢Solr失敗 - 現在標題中顯示html部分:Error 400個未定義字段:「Web」。訪問/ solr/select時出現問題。原因未定義字段「Web」。另一個錯誤出現在下面:KeyError ['fields'] – dark4p
也許是因爲字段類別被索引爲MultivalueField,這個錯誤出現了嗎? – dark4p