0

Elasticsearch にクエリを実行しようとしていますが、特定のフィールドを持つ結果のみを取得しています。

フィールドを持つドキュメントを照会し、フィールドfields.EventData.PGIDを持たないドキュメントを無視するにはどうすればよいですか?

datadict = es.search(index=idx1, 
                     q='run_id:"Run001" AND "fields.EventData.PGID exists"', 
                     sort='fields.System.TimeCreated.SystemTime',
                     size=1000)

イベントが ES に記録される方法に一貫性がないため、PGID が記録されたものだけを見つける必要があります。Pythonコードでtryブロックを実行して、返された値からフィールドにアクセスしようとし、KeyErrorが発生した場合は無視しようとしましたが、クエリ結果として受け取ることができるアイテムの数に制限があるため、場合によってはすべての結果に PGID がないため、クエリが無駄になり、実際の結果にアクセスできないため、このフィルタリングをクエリ レベルで実行したいと考えています。

4

1 に答える 1