0
我需要能夠將數據從這樣的指標進行排序:Django-Haystack - 如何使用獲取參數進行排序?
http://mywebapp.com/search/?q=something&sort_by=points-desc
換句話說,我需要在URL中傳遞「sort_by」的價值。我試圖搜索文檔,但我找不到任何示例。
有人可以提供一個關於如何實現這一目標的線索嗎?
我使用Django的草垛2.0和搜索查看()
任何線索?
更新:乾草堆搜索索引
class LinkViewIndex(indexes.SearchIndex, indexes.Indexable):
text = indexes.CharField(document=True, use_template=True)
section = indexes.CharField(model_attr='section')
section_id = indexes.CharField(model_attr='section_id')
item_author_username = indexes.CharField(model_attr='item_author_username')
title = indexes.CharField(model_attr='title')
url = indexes.CharField(model_attr='url')
url_image = indexes.CharField(model_attr='url_image')
comments = indexes.CharField(model_attr='comments', null=True)
comments_count = indexes.CharField(model_attr='comments_count')
points = indexes.CharField(model_attr='points')
date_inserted = indexes.DateTimeField(model_attr='date_inserted')
def get_model(self):
return LinkView
def index_queryset(self, using=None):
"""Used when the entire index for model is updated."""
return self.get_model().objects.filter(date_inserted__lte=datetime.datetime.now())
class TextViewIndex(indexes.SearchIndex, indexes.Indexable):
text = indexes.CharField(document=True, use_template=True)
section = indexes.CharField(model_attr='section')
section_id = indexes.CharField(model_attr='section_id')
item_author_username = indexes.CharField(model_attr='item_author_username')
title = indexes.CharField(model_attr='title')
texto = indexes.CharField(model_attr='texto')
comments = indexes.CharField(model_attr='comments', null=True)
comments_count = indexes.CharField(model_attr='comments_count')
points = indexes.CharField(model_attr='points')
date_inserted = indexes.DateTimeField(model_attr='date_inserted')
def get_model(self):
return TextView
def index_queryset(self, using=None):
"""Used when the entire index for model is updated."""
return self.get_model().objects.filter(date_inserted__lte=datetime.datetime.now())
class OffTopicLinkViewIndex(indexes.SearchIndex, indexes.Indexable):
text = indexes.CharField(document=True, use_template=True)
section = indexes.CharField(model_attr='section')
section_id = indexes.CharField(model_attr='section_id')
item_author_username = indexes.CharField(model_attr='item_author_username')
title = indexes.CharField(model_attr='title')
url = indexes.CharField(model_attr='url')
url_image = indexes.CharField(model_attr='url_image')
comments = indexes.CharField(model_attr='comments', null=True)
comments_count = indexes.CharField(model_attr='comments_count')
points = indexes.CharField(model_attr='points')
date_inserted = indexes.DateTimeField(model_attr='date_inserted')
def get_model(self):
return OffTopicLinkView
def index_queryset(self, using=None):
"""Used when the entire index for model is updated."""
return self.get_model().objects.filter(date_inserted__lte=datetime.datetime.now())
class OffTopicTextViewIndex(indexes.SearchIndex, indexes.Indexable):
text = indexes.CharField(document=True, use_template=True)
section = indexes.CharField(model_attr='section')
section_id = indexes.CharField(model_attr='section_id')
item_author_username = indexes.CharField(model_attr='item_author_username')
title = indexes.CharField(model_attr='title')
texto = indexes.CharField(model_attr='texto')
comments = indexes.CharField(model_attr='comments', null=True)
comments_count = indexes.CharField(model_attr='comments_count')
points = indexes.CharField(model_attr='points')
date_inserted = indexes.DateTimeField(model_attr='date_inserted')
def get_model(self):
return OffTopicTextView
def index_queryset(self, using=None):
"""Used when the entire index for model is updated."""
return self.get_model().objects.filter(date_inserted__lte=datetime.datetime.now())
class BusinessLinkViewIndex(indexes.SearchIndex, indexes.Indexable):
text = indexes.CharField(document=True, use_template=True)
section = indexes.CharField(model_attr='section')
section_id = indexes.CharField(model_attr='section_id')
item_author_username = indexes.CharField(model_attr='item_author_username')
title = indexes.CharField(model_attr='title')
country = indexes.CharField(model_attr='country')
localidades = indexes.CharField(model_attr='localidades')
url = indexes.CharField(model_attr='url')
url_image = indexes.CharField(model_attr='url_image')
comments = indexes.CharField(model_attr='comments', null=True)
comments_count = indexes.CharField(model_attr='comments_count')
points = indexes.CharField(model_attr='points')
date_inserted = indexes.DateTimeField(model_attr='date_inserted')
def get_model(self):
return BusinessLinkView
def index_queryset(self, using=None):
"""Used when the entire index for model is updated."""
return self.get_model().objects.filter(date_inserted__lte=datetime.datetime.now())
class BicycleAdViewIndex(indexes.SearchIndex, indexes.Indexable):
text = indexes.CharField(document=True, use_template=True)
section = indexes.CharField(model_attr='section')
section_id = indexes.CharField(model_attr='section_id')
item_author_username = indexes.CharField(model_attr='item_author_username')
title = indexes.CharField(model_attr='title')
country = indexes.CharField(model_attr='country')
city = indexes.CharField(model_attr='city')
n_item_kind = indexes.CharField(model_attr='n_item_kind')
n_bicycle_ad_condition = indexes.CharField(model_attr='n_bicycle_ad_condition')
bicyclead_link_url = indexes.CharField(model_attr='bicyclead_link_url', null=True)
bicyclead_link_url_image = indexes.CharField(model_attr='bicyclead_link_url_image', null=True)
bicyclead_insite_image = indexes.CharField(model_attr='bicyclead_insite_image', null=True)
texto = indexes.CharField(model_attr='texto', null=True)
telephone = indexes.CharField(model_attr='telephone', null=True)
price = indexes.CharField(model_attr='price', null=True)
n_bicycle_ad_payment_type = indexes.CharField(model_attr='n_bicycle_ad_payment_type', null=True)
propriedades = indexes.CharField(model_attr='propriedades', null=True)
comments = indexes.CharField(model_attr='comments', null=True)
comments_count = indexes.CharField(model_attr='comments_count')
points = indexes.CharField(model_attr='points')
date_inserted = indexes.DateTimeField(model_attr='date_inserted')
def get_model(self):
return BicycleAdView
def index_queryset(self, using=None):
"""Used when the entire index for model is updated."""
return self.get_model().objects.filter(date_inserted__lte=datetime.datetime.now())
的問題應該是。我怎樣才能通過GET參數由「點」或「date_inserted」使用這樣的命令:乾草堆
http://mywebapp.com/search/?q=something&sort_by=points-desc
嗨Catherina。感謝您的回覆。我可以查詢索引而不是模型嗎? – 2013-03-18 13:18:21
我可以看到你的索引嗎? – catherine 2013-03-18 13:20:51
我已經包含索引。我也忘記指出我正在使用ElasticSearch。謝謝 – 2013-03-18 13:41:53