デフォルト表示フィールドを設定することで、各検索リクエストで取得して返す必要があるアプリケーションスキーマ内のフィールドを指定できます。 アプリケーションで表示する必要があるフィールドのみを指定するには、fetch_fields パラメーターを使用します。
仕組み
返されるフィールドは、2 つの設定レイヤーで制御されます:
| レイヤー | 適用されるタイミング |
|---|---|
| コンソールのデフォルト設定 | リクエストで fetch_fields の値が渡されない場合 |
SDK/API の fetch_fields | クエリ時に値が渡される場合 — コンソールのデフォルト設定をオーバーライドします |
コンソールでのデフォルト表示フィールドの設定
OpenSearch コンソールにログインします。 左側のナビゲーションペインで、[機能拡張] > [検索結果の表示] を選択します。
[「デフォルト表示フィールド」] セクションで、返すフィールドを追加します。
[「デフォルト表示フィールド」] セクションで、フィールドリストの最後にある編集アイコンをクリックして、表示フィールドを追加または変更します。
コンソールのデフォルト設定がまだない場合は、アプリケーションの検索テスト中に表示フィールドを追加することもできます。
注: 複数のフィールド値は、カンマ (,) で区切ってください。
検索テストページのパラメーターエリアで、fetch_fields パラメーターを使用して返すフィールドを指定します。 たとえば、fetch_fields=buy,cate_id,title は buy、cate_id、title フィールドのみを返します。
クエリ時の表示フィールドのオーバーライド
SDK コールまたは API リクエストで fetch_fields を渡すと、そのリクエストに対してコンソールのデフォルト設定がオーバーライドされます。 クライアントが必要とするフィールドのみを指定してください。返されるテキストデータのサイズは、検索パフォーマンスに大きな影響を与えます。
API パラメーター: API コールで fetch_fields パラメーターを使用する方法については、「検索リクエストの開始」をご参照ください。
SDK for Java: 次の例では、返すフィールドを指定しています。
// 検索結果で返すフィールドを指定します。
config.setFetchFields(Lists.newArrayList("id", "name", "phone", "int_arr", "literal_arr", "float_arr", "cate_id"));制限
JOIN 複数テーブルのシナリオ: セカンダリテーブルのプライマリキーフィールドは、デフォルト表示フィールドとして設定できません。 検索結果にセカンダリテーブルのプライマリキーの値を含めるには、代わりにプライマリテーブルの関連フィールドを使用してください。
たとえば、プライマリテーブル p_table のプライマリキーが id で、セカンダリテーブル s_table_1 のプライマリキーが id_1 の場合、検索テストで fetch_fields=id_1 を指定しても、セカンダリテーブルのプライマリキーの値は返されません。 fetch_fields=id (プライマリテーブルの関連フィールド) を指定すると、期待される結果が返されます。