2

我正在使用PyES库来查询elastcsearch. 假设我的查询如下所示:

query = MatchAllQuery()
query = query.search(
    fields=[
        "content.title",
        "content.description",
        "content.timestamp",
        "source.name",
        "source.url"
    ],
    count=10
)

result = es_conn.search(
             query=query,
             indices=['my'],
             sort="content.timestamp:desc"
         )

每个结果的项目都是一个以字段名称作为键的字典,所以 item= {" content.title": "bla bla", " content.description": "bla bla bla", ... }

我的脚本只是一个吸气剂,需要为第 3 方脚本保存结果而不进行处理,但该脚本需要特殊的键名:item= {“ name”:“bla bla”,“ text”:“bla bla bla”,...}

是否可以在 PyES 请求中指定用于在返回的对象中重命名字段名称(为“名称”、“标题”、“日期”等)的规则?

当然,在我得到响应后,我可以这样做,elsticsearch它需要遍历结果对象(我要避免什么),并且如果我在响应中有数千个项目,它看起来并不是那么理想。

4

1 回答 1

2

您需要使用部分字段,但不确定是否可以将它们与 pyes 一起使用。我快速浏览了文档,但找不到。

您的 JSON 查询将如下所示:

{
    "query" : {
        "match_all" : {}
    },
    "partial_fields" : {
        "name" : {
            "include" : "content.title",
        },
        "text" : {
            "include" : "content.description",
        }
    }
}
于 2012-08-29T13:32:59.747 回答