2013-07-08 23 views
2

我使用Haystack和ElasticSearch來搜索我網站上的用戶文檔。用戶互相「關注」,我希望在其他用戶的匹配文檔之前顯示我所遵循的用戶的匹配文檔。在每個類別中,我想根據默認分數將排序保留到Haystack。加入Haystack SearchQuerySets

class DocumentIndex(indexes.SearchIndex, indexes.Indexable): 
    text = indexes.CharField(document=True, use_template=True) 
    title = indexes.CharField(model_attr="title", boost=3.0) 
    follow = indexes.MultiValueField() 

def search(self): 
    sqs = self.searchqueryset.auto_query(self.cleaned_data['q']) 
    friend_results = sqs.filter(friends=self.cleaned_data['username']) 
    other_results = sqs.exclude(friends=self.cleaned_data['username']) 

    #***** Can I do something like this? ****# 

    final_query_set = join (friend_results, other_results) 

    return final_query_set 

謝謝你的幫忙。

回答

0
final_query_set = friend_results | other results 

我想這就是你要找的。

+0

不幸的是,這不會保存順序。 other_results不會在friend_results之後顯示 –