我有一个这样的术语查询列表
term_query = [
Terms(metadata__resource_type__subtype=["publication-softwaredocumentation"]),
Terms(metadata__resource_type__type=["dataset"]),
]我必须在这两个查询中应用post_filter,这两个查询都是这样的
search = search.post_filter(term_query[0] | term_query[1])我想处理term_query将有0或更多元素的情况。如何在OR中解压由post_filter运算符分隔的列表
发布于 2021-04-14 09:17:08
在等待答案的同时,我搜索了python本身中可用的任何方法来实现这一点。
我发现itertools和operator模块工作得很好。
解决方案如下
import itertools, operator
term_queries = [
Terms(metadata__resource_type__subtype=["publication-softwaredocumentation"]),
Terms(metadata__resource_type__type=["dataset"]),
]
final_query = list(itertools.accumulate(term_queries, operator.or_))[-1]
search = search.post_filter(final_query)https://stackoverflow.com/questions/66982877
复制相似问题