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"
         )

すべての結果の項目は、フィールドの名前をキーとする dict であるため、 item= {" content.title": "bla bla", " content.description": "bla bla bla", ... }

私のスクリプトはゲッターにすぎず、サードパーティのスクリプトの結果を処理せずに保存する必要がありますが、そのスクリプトには特別なキー名が必要です: 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 に答える