6

Elasticsearch で検索操作を行う場合、メタデータを除外して、応答で「_source」のみを返すようにします。次の方法で「検索」を介して同じことを達成できます。

out1 = es.search(index='index.com', filter_path=['hits.hits._id', 'hits.hits._source'])

しかし、スキャンメソッドで同じことをすると、空のリストが返されます:

out2 = helpers.scan(es, query, index='index.com', doc_type='2016-07-27',filter_path= ['hits.hits._source'])

問題は、'scan' メソッドの応答を処理する方法、または値を filter_path に渡す方法にある可能性があります。出力を確認するには、out2 をリストに解析します。

4

2 に答える 2

5

ヘルパーは現在、scan追加のパラメーターをscrollAPI に渡すことを許可してfilter_pathいないため、適用されません。ただし、サイクルsearchを開始するために使用される最初の API 呼び出しには適用されます。scan/scrollこれはscroll_id、応答から が削除され、操作全体が失敗することを意味します。

あなたの場合、filter_pathパラメーターをAPI 呼び出しに渡しても、この操作が機能するために必要なものが取り除かれ、ヘルパーが応答の構造に依存しているため、scrollヘルパーが失敗します。scroll_id

レスポンスのサイズを制限する必要がある場合、またはデフォルトよりも小さいパラメータを使用する必要がある場合は、ソース フィルタリングを使用することをお勧めします。size1000

これが役に立てば幸いです、ホンザ

于 2016-12-15T04:55:14.860 に答える