简体   繁体   中英

Indexing a JSON file with multiple documents in elastic search

I am new to elasticsearch i want to index a JSON file and perform search queries from elasticsearch

How can I index this json and perform queries to get value if i pass parameter as "field3.innerfield": "someval"

I have tried indexing this file with helpers.bulk and search but it returns all the fields instead of a selected field.

Below is the JSON sample

[
    {
        "id": "someid",
        "metadata": {
            "docType": "value",
            "otherfield": " ",
            morefields
            .
            .
        },
        "field1":"value1",
        "field2":"value2,
        "field3": [
            {
                "innerfield": "someval",
                "innerfield1":[
                    "kind of a paragraph"
                ]
            }
        ],
        "field4": [
            {
                "innerfield": "someval",
                "innerfield1": "kind of a paragraph"
            }
        ],
    },
    { again the format repeats with different id but same fields
    },
    {
    }

]

Your question lacks clarity however what I understood is that you want to fetch values from its key for a nested json. You can do that in the following way as shown below. Parse it multiple times and make the required changes as per your need.

import json
data = data.apply(lambda x: json.loads(json.loads(x).get("metadata","{}")).get("doctype") if x else None)

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM