1
當我在SearchQuerySet上more_like_this調用之前鏈接一個過濾器時,過濾器似乎根本不應用。Haystack更像這樣忽略過濾器
from haystack.query import SearchQuerySet as sqs
from articles.models import Article
article = Article.objects.get(pk=4560) # Article instance of one of the many articles I have
sqs().filter(author='[email protected]').count() # 147 - 147 documents with [email protected] so far so good
sqs().more_like_this(article).count() #54893
sqs().filter(author='[email protected]').more_like_this(article).count() # 54893!!!
我認爲這樣做的:
sqs().filter(author='[email protected]').more_like_this(article)
將限制147個過濾的文件中我的MLT搜索,但它幾乎就像過濾器被完全忽略。
我也試圖扭轉鏈的順序:
sqs().more_like_this(article).filter(author='[email protected]')
,但它與返回的整個搜索索引
任何想法結束了?提前致謝。
這裏是我的article_text.txt
{{ object.title }}
{{ object.body.excerpt|striptags|escape }}
search_index.py
class ArticleIndexes(indexes.SearchIndex, indexes.Indexable):
text = indexes.CharField(document=True, use_template=True, boost=1.1)
author = indexes.CharField(model_attr='author')
site_id = indexes.CharField(model_attr='site_id')
# non-indexed, stored field
stored_obj = ArticleStorageField(indexed=False)