在弹性搜索中索引包含多个文档的 JSON 文件

时间:2020-12-28 09:04:42

标签: python-3.x elasticsearch elasticsearch-5

我是 elasticsearch 的新手,我想索引一个 JSON 文件并从 elasticsearch 执行搜索查询

如果我将参数作为 "field3.innerfield" 传递,我如何索引这个 json 并执行查询以获取值:"someval"

我尝试使用 helpers.bulk 为该文件编制索引并进行搜索,但它返回所有字段而不是选定字段。

以下是 JSON 示例

[
    {
        "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
    },
    {
    }

]

1 个答案:

答案 0 :(得分:0)

您的问题不够清晰,但我的理解是您想从嵌套 json 的键中获取值。您可以通过以下方式执行此操作,如下所示。 对其进行多次解析并根据您的需要进行必要的更改。

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