我有一个列表,其大小不固定,可以包含任何编号。的项目。
根据列表中的项目数,我必须生成一个弹性搜索 AND 查询来查找值的完全匹配。
例如:
如果我的列表包含 2 项:['a', 'b']
,我的弹性搜索查询应如下所示:
Q('term', field='a') & Q('term', field='b')
同样,如果我的列表包含 4 个项目:['a', 'b','c','d']
;我的查询将如下所示:
Q('term', field='a') & Q('term', field='b') & Q('term', field='c') & Q('term', field='d')
根据列表大小生成这种查询的正确方法是什么?
PS:我正在使用elasticsearch_dsl
模块的Q
库来生成弹性搜索查询。
https://elasticsearch-dsl.readthedocs.io/en/latest/search_dsl.html