(更新:問題是特定使用自動查詢的)Django的草堆自動查詢:與HAYSTACK_DEFAULT_OPERATOR沒有結果=「與」
據我可以告訴從文檔,並從查看源, HAYSTACK_DEFAULT_OPERATOR
設置應該控制在查詢集鏈接在一起時.filter(...)
子句的組合方式。
但是當我使用AutoQuery
另外它似乎是控制是否所有單詞匹配或任何字一語中的相匹配。 (我在ElasticSearch)
例如:
HAYSTACK_DEFAULT_OPERATOR = 'OR'
sqs = SearchQuerySet().filter(content=AutoQuery('some of these words are in my content'))
sqs.count() = 53
HAYSTACK_DEFAULT_OPERATOR = 'AND'
sqs = SearchQuerySet().filter(content=AutoQuery('some of these words are in my content'))
sqs.count() = 0
sqs = SearchQuerySet().filter(content=AutoQuery('all these words are in the content'))
sqs.count() = 1
古怪,使用filter_or
或filter_and
似乎沒有任何區別。例如
HAYSTACK_DEFAULT_OPERATOR = 'AND'
sqs = SearchQuerySet().filter_or(content=AutoQuery('some of these words are in my content'))
sqs.count() = 0
答案一定是在草堆源代碼的某個地方,我會繼續關注,至少是它似乎在文檔中的缺陷......
這是應該發生的?有沒有一種方法可以將默認的過濾器鏈接爲AND,同時仍然可以匹配AutoQuery中的任何單詞?