この記事では、Elasticsearch インデックスでフィールドを表示する方法について説明します。これは、データの構造を理解し、特定のフィールドを識別し、問題をトラブルシューティングするのに役立ちます。以下のトピックを取り上げます。
_mappingAPIを使用してフィールド情報を取得する_searchAPIを使用してフィールド値を表示する- パラメータ を使用してフィールドをフィルタリングする
fields - ネストされたフィールドの表示
1. _mapping APIを使用してフィールド情報を取得する
_mapping API を使用すると、1 つまたは複数のインデックスのマッピング定義を取得できます。これには、フィールド、そのデータ型、およびその他のプロパティに関する情報が含まれます。特定のインデックスのマッピングを取得するには、次のリクエストを使用します。
たとえば、 my_indexという名前のインデックスがある場合、次のリクエストでそのマッピングを取得できます。
応答には、フィールドとそのプロパティに関する情報を含むインデックスのマッピング定義が含まれます。
特定のフィールドのマッピングを取得することもできます。これは、マッピングが非常に大きく、特定のフィールドにのみ焦点を当てたい場合に便利です。特定のフィールドのマッピングを取得するには、次のリクエストを使用します。
次のリクエストのように、フィールド名をコンマで区切ることで、複数のフィールドのマッピングを取得することもできます。
2. _search APIを使用してフィールド値を表示する
Elasticsearch インデックス内のフィールドの値を表示するには、 _search API を使用できます。デフォルトでは、 _search API は、インデックスが作成された元の JSON ドキュメントを含む_sourceフィールドを返します。特定のフィールドのみを表示するには、検索リクエストで_sourceパラメータを使用できます。
以下は、 my_indexインデックス内のドキュメントのtitleフィールドとauthorフィールドの値を返す検索要求の例です。
この例では、 _sourceパラメータは返されるフィールドを指定します。
3. フィールドパラメータを使用してフィールドをフィルタリングする
fieldsパラメータを使用して、検索応答で返されるフィールドをフィルタリングすることもできます。これは、特定のフィールドのみが必要で、応答のサイズを縮小したい場合に役立ちます。fieldsパラメータは、フィールド名またはワイルドカード パターンの配列を受け入れます。
たとえば、 my_indexインデックス内のドキュメントのtitleフィールドとauthorフィールドのみを返すには、次の検索リクエストを使用できます。
ソース ドキュメントを返さないように、 _sourceパラメータは false に設定されていることに注意してください。
textデータ型のすべてのフィールドを返すには、次のようなワイルドカード パターンを使用できます。
4. ネストされたフィールドの表示
インデックスにネストされたフィールドが含まれている場合は、ドット表記を使用して、 fieldsパラメータでネストされたフィールド パスを指定できます。たとえば、 address.cityという名前のネストされたフィールドがある場合、次のように検索応答に含めることができます。
この例では、検索応答にはtitle 、 author 、およびaddress.cityフィールドの値が含まれます。
まとめ
結論として、Elasticsearch インデックス内のフィールドを表示するには、 _mapping API を使用してフィールド情報を取得し、 _search API を使用してフィールド値を表示します。_sourceまたはfieldsパラメータを使用して検索応答で返されるフィールドをフィルタリングし、ドット表記を使用してネストされたフィールドを表示できます。これらの手法は、データの構造を理解し、特定のフィールドを識別し、問題のトラブルシューティングを行うのに役立ちます。




