У меня есть следующая схема моего Elasticsearch
документа:
{
_id: _id_val
sample_id: sample_id,
data_arr: [{qc_1: qc_1_val, qc_2: qc_2_val, tot: tot_val}, ...]
}
Я хочу создать запрос в python2
с elasticsearch-dsl
, который получает все документы в наборе из списка sample_ids
, и эти извлеченные документы должны быть подмножествами реальных документов со списком data_arr
, содержащим только объекты, которые имеют qc_1
в qc_1_list
. Здесь я нашел, как сделать запрос nested
:
https://github.com/elastic/elasticsearch-dsl-py/issues/304
Но это для вложенных объектов, поэтому я не уверен, как я могу получить, скажем, qc_1
здесь, чтобы построить запрос. В настоящее время мой незаконченный запрос выглядит следующим образом:
main_filter = Q('bool', filter=[Q('terms', sample_id=sample_list),
-----> Q('nested', qc_gene_data__=gene_list)])
res = Search(using=client, index=index_name).filter(main_filter)
И я не уверен, что писать в nested
части запроса и разрешено ли вообще такое main_filter
, или я должен разбить его на две части.