Elasticsearch вложенный и агрегационный запрос с python - PullRequest
0 голосов
/ 21 сентября 2019

Я относительно новичок вasticsearch, так что извините, если это кажется глупым вопросом ... Я пытаюсь запросить мой эластик, чтобы найти все документы, содержащие слово (тег) внутри вложенного json, который содержит массивобъекты ..

пример: {... "notes": {... "tags": {[{"n": 100, "t": "data science"}, {"n": 101, "t": "web development"}, {"n": 102, "t": "python"} ....]}} И я хочу извлечь все документы (jsons), которые находятся внутри ихтеги один тег data_science и один тег python.

Я использую для этого обычную библиотекуasticsearch (на python), и я пытался использовать aggs и вложенные документы, но не мог понять, какобъединить их и получить запрос, который мне нужен.https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-nested-query.html https://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-bucket-terms-aggregation.html

from elasticsearch import Elasticsearch

es = Elasticsearch([{'host': 'localhost', 'port': 9200}])

body = '''
{
    "query": {
        "nested" : {
            "path" : "my_index",
            "query" : {
                "bool" : {
                    "must" : [
                    { "range" : {"my_index.notes.tags.t" : {"python": 2}} },
                    { "range" : {"my_index.notes.tags.t" : {"data science": 2}} }
                    ]
                }
            },
            "score_mode" : "avg"
        }
    }
}
'''

es.search(index="my_index", body=body)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...