メインコンテンツへスキップ
検索を使うと、エンドポイントごとに個別に問い合わせることなく、組織内のリソースを素早く見つけられます。1 つのクエリで、一致するプロジェクト、スタディ、シミュレーション、モデル、パラメータ化モデル、最適化、最適化テンプレート、実験テンプレート、パイプライン、セル仕様、セルインスタンス、セル測定、材料、サイクラー、およびチャネルを返します。 検索は REST API と Ionworks Studio のグローバル検索バーの両方から利用できます。Studio では任意のページ上部から検索バーを開けます。また、独自のスクリプトやツールから /search エンドポイントを直接呼び出すこともできます。

検索可能な対象

検索は各リソース種別の名前、説明、その他の識別フィールドに対してマッチングを行います。結果は現在の組織にスコープされ、プロジェクトレベルの権限を尊重します。アクセスできるリソースのみが表示されます。

API 経由で検索を使用する

検索は /search エンドポイントで利用できます。完全なリクエスト/レスポンススキーマについてはAPI リファレンスを参照してください。 典型的なリクエストはクエリ文字列を指定し、リソース種別ごとにグループ化されたマッチを返します:
結果は API キーがアクセス可能なリソースにフィルタリングされます。

クエリパラメータ

レスポンス形式

レスポンスには一致した results、元の query、およびクライアントがページネーション UI を描画できるよう、totallimitoffset のページネーションフィールドが含まれます:
total は、検索対象となったエンティティ種別全体で取得された一致件数を反映します(per_type × 検索対象となったエンティティ種別数で上限が設定されます)。したがって total はデータベース内で実際に一致するレコードの総数ではなく、取得段階での上限値です。たとえばデフォルトの per_type=5 で 14 種別を検索した場合、何千件一致しても total は 70 を超えません。大きな結果セットでは total / limit で正確なページ数を計算しないでください。

ページネーションとフィルタリングの例

セルと材料の一致の 2 ページ目を取得し、種別ごとに最大 10 件返す例。ここでの project_id は、プロジェクトでフィルタリングされるタイプ(スタディ、パイプライン、最適化)のみを絞り込みます。セルと材料の結果は関係なく返されます:

結果のフィールド

各結果には entity_typeidname、および (プロジェクト配下のリソースの場合) project_id が含まれます。ネストされたリソースの結果には、含まれる親リソースを指す parent_id も含まれます。たとえば cell_instance の結果の parent_id は、それが属するセル仕様を指す ID であり、channel の結果の parent_id はその親サイクラーを指す ID です。parent_id を使って親リソースへ遷移したり、直接クエリしたりできます。

サイクラーとチャネルの検索

クエリをハードウェアのみに絞り込むには、entity_types=cyclerentity_types=channel を指定します。どちらもプロジェクトスコープのため、project_id を指定すると 1 つのプロジェクトに結果を絞り込めます:
channel の結果は、parent_id に親サイクラーの cycler_id を持ち、そこから直接サイクラーを取得できます。
検索は、部分的な名前(例: セル化学、顧客名、プロトコルキーワード)は覚えているが、どのプロジェクトやスタディに含まれているかわからない場合に便利です。
検索はサーバー上で Postgres の全文インデックスを使用するため、組織にリソースが多く蓄積されてもクエリは高速に返されます。インデックスは自動的に維持されるため、設定は不要です。