http://elasticsearch-dsl.readthedocs.io 0.0.10 および ES 1.7.3を使用しています。
検索中に奇妙な動作に直面しました。「すべき」クエリに渡すいくつかの単語が検索を中断し、検索でその単語が見つかりません (コンソールで確認できます) だけでなく、他の多くの単語も見つかりません。
以下のコードでは、"should" クエリは 1000 句で構成されています。私の推測では、この単語は語彙に含まれていません (私はロシア語と英語の形態学構成を使用しています)。したがって、これらの「問題のある」単語を削除すると、検索が再び機能します。
これは非常に奇妙です-「問題のある」単語をテストしたhttps://django-haystack.readthedocs.io/en/v2.5.0/index.html
ところ、ESはそれらを見つけることができました....
for i in eat_search_raw_list_1024:
q = Q('bool',
#must=[Q('match', text='BBQ')],
should=[(Q("match", text="\'bad service\'~3") | Q("match", text="\'bad eat\'~3") .........1000 more................],
minimum_should_match=1,
_name=name_query
)
s = Search(using=client, index="haystack").query(q).query(~Q("match", text=minus_words))
s = s.highlight('text', fragment_size=50)
response = s.execute()