Elasticsearch は、検索クエリを実行すると、デフォルトでドキュメント内のすべてのフィールドを返します。これは、インデックス作成中にレコードに格納されたすべてのデータを含む _source パラメータによって定義されます。
curl -XGET 'http://localhost:9200/netflix/_doc/HXYz_IIBLbuC0z3qKeN2?pretty' -H 'kbn-xsrf: レポート'出力:
ただし、特定のドキュメントからすべてのフィールドを取得したくない場合があります。このチュートリアルでは、ドキュメントから特定のフィールドを選択する方法を学習します。
Elasticsearch フィールド オプション
fields パラメータを使用すると、検索リクエストで特定のフィールドを取得できます。さらに、フィールド パラメータを使用すると、1 つまたは複数のフィールドを取得できます。 fields パラメーターを使用して、日付と空間データ型をフォーマットすることもできます。
たとえば、Netflix インデックスから index、id、title、release_year、listed in、duration、および rating フィールドを取得すると仮定すると、次のようにクエリを実行できます。
curl -XGET 'http://localhost/netflix/_search' -H 'kbn-xsrf: レポート' -H 'コンテンツ タイプ: アプリケーション/json' -d'
{
'クエリ': {
'マッチ': {
'_id': 'HXYz_IIBLbuC0z3qKeN2'
}
}、
'田畑': [
'索引'、
'ID'、
'題名'、
'リリース_年',
'listed_in',
'間隔'、
「評価」
]、
'_source': false
}'
上記のリクエストでは、検索 API を使用して、一致パラメーターで指定された ID を持つドキュメントを検索します。
次に、fields パラメーターを使用して、ターゲット ドキュメントから特定のフィールドを取得します。
Elasticsearch にはデフォルトで、すべてのドキュメント フィールドで構成される _source パラメータが含まれることに注意してください。指定されたフィールドのみを確実に取得するために、_source パラメーターをオフにします。
上記のリクエストは、次のようなレスポンスを返します。
{「取った」: 1,
'timed_out': false,
'_shards': {
'合計': 1,
「成功」: 1,
「スキップ」: 0,
「失敗しました」: 0
}、
'ヒット': {
'合計': {
'値': 1,
'関係': '等式'
}、
'max_score': 1,
'ヒット': [
{
'_index': 'ネットフリックス',
'_id': 'HXYz_IIBLbuC0z3qKeN2',
'_score': 1,
'田畑': {
'listed_in': [
「ドキュメンタリー」
]、
'間隔': [
「90分」
]、
'リリース年': [
2020年
]、
'評価': [
「PG-13」
]、
'題名': [
「ディック・ジョンソンは死んだ」
]
}
}
]
}
}
_source パラメータを使用して、検索クエリから返すフィールドを定義することもできます。以下に例を示します。
curl -XGET 'http://localhost:9200/netflix/_search' -H 'kbn-xsrf: レポート' -H 'コンテンツ タイプ: アプリケーション/json' -d'{
'_source': ['タイトル', 'リリース年', '評価', '期間'],
'クエリ': {
'学期': {
'_id': {
「値」:「HXYz_IIBLbuC0z3qKeN2」
}
}
}
}'
この場合、取得するフィールドを source パラメータの配列として指定します。上記のリクエストは、次のようなレスポンスを返します。
{「取った」: 0,
'timed_out': false,
'_shards': {
'合計': 1,
「成功」: 1,
「スキップ」: 0,
「失敗しました」: 0
}、
'ヒット': {
'合計': {
'値': 1,
'関係': '等式'
}、
'max_score': 1,
'ヒット': [
{
'_index': 'ネットフリックス',
'_id': 'HXYz_IIBLbuC0z3qKeN2',
'_score': 1,
'_ソース': {
'duration': '90分',
'リリース年': 2020,
'評価': 'PG-13',
「タイトル」:「ディック・ジョンソンは死んだ」
}
}
]
}
}
結論
この記事では、fields パラメーターと _source パラメーターを使用して、検索要求から特定のフィールドを取得する方法を学習しました。
Elasticsearch とその機能の詳細については、このトピックに関するチュートリアルをご覧ください。あなたは何か役に立つものを見つけることが保証されています.
読んでいただきありがとうございます。次の記事でお会いしましょう!!