Запрос полей вложенного массива объекта - PullRequest
0 голосов
/ 11 июня 2019

У меня есть следующая схема моего 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, или я должен разбить его на две части.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...