Elasticsearch 特定のフィールドを選択

Elasticsearch Te Dingnofirudowo Xuan Ze



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 とその機能の詳細については、このトピックに関するチュートリアルをご覧ください。あなたは何か役に立つものを見つけることが保証されています.

読んでいただきありがとうございます。次の記事でお会いしましょう!!