検索ウィジェット

検索ウィジェットでは、特定のレイヤーやロケーターに基づいてフィーチャ、レコード、または位置を検索するように検索ツールを構成し、検索結果を表示する方法を定義することができます。 複数の検索ソースをウィジェットに追加した場合、ユーザーはどれを検索するのかを選択できます。 レイヤー ソースを使用して検索を実行すると、アプリ全体のデータに影響するので、同じレイヤーを使用する他のウィジェットもフィルター処理され、対応する検索結果が表示されます。 検索語句を選択する必要がある場合は、アクションを設定します。 ウィジェットがデータをフィルタリングせずにフィーチャを選択するには、レイヤー ソースとして使用できるデータ ソースのデータ ビューを作成します。 ロケーター ソースを使用して検索を実行すると、他のウィジェットでも使用できる出力データ ソースが生成されます。

検索するには、検索ボックスに単語またはフレーズを入力して Enter キーを押し、検索ボタンをクリックするか、一致したレコードに基づいて表示される候補のリストから選択します (候補のリストには一致した値がそれぞれアイテムとして表示されるので、1 つのレコードに検索語句と一致するフィールドが 2 つある場合、そのレコードが 2 つの候補として表示されます)。矢印キーおよび矢印キーを使用して、候補のリストを参照します。 候補をクリックすると、検索語句が候補アイテムのコンテンツと置き換わり、新しい値を使用して検索が適用され、結果パネルに対応するデータが返されます。 これを効率化するために、オンにすると最初の検索結果を自動的に選択できる設定があります。 アプリで別のページを開いて、別のウィジェットに結果を表示するように構成することもできます。

このウィジェットを使用して、次のようなアプリの設計要件をサポートします。

  • マップ ウィジェット、リスト ウィジェット、テーブル ウィジェットに含まれる検索ツールよりも柔軟性の高い検索オプションをアプリ内に構成したいと考えています。 特に、マップ内の特定のレイヤーの限られたフィールドを検索し、検索ボックス内に固有のヒント テキストを入力し、結果パネルに特定のデータ フィールドの値を表示したいと考えています。
  • ユーザーが、検索の実行時に複数のソースから情報を見つけられるようにする必要があります。
  • アプリ内の別のページに、他のウィジェットの検索結果を表示したいと考えています。

使用上の注意

検索ウィジェットは、レイヤーとロケーターという 2 つのタイプの検索ソースをサポートしています。 ロケーター ソースを使用するには、ロケーター サービスを追加します。 組織の設定で指定したか [ユーティリティの選択] パネルで追加したロケーターを使用できます。 レイヤーを検索するには、アプリにデータとして追加されているフィーチャ レイヤーおよびシーン レイヤーから選択します。

複数の検索ソースを構成した場合、ユーザーは実行時にドロップダウン メニューを使用し、個々のソースのオンとオフを切り替えるか、[すべて] チェックボックスを使用してすべてのソースのオンとオフを切り替えられます。

検索ウィジェットと他のウィジェット間の自動的な対話機能を作成するアクションを設定できます。 たとえば、マップを選択した結果にズームしたり、マップ上でロケーター ソースからの検索結果を表示したりできます。

検索ウィジェットとマップ ウィジェットを同じフィーチャ レイヤーに接続して、マップ ウィジェットの設定でフィーチャ選択時にポップアップを表示をオンにした場合、検索結果からレコードを選択するときにポップアップが表示されます。

検索方法

検索ウィジェットは、検索候補と検索結果の取得に、異なる方法を使用します。

このウィジェットは、レイヤー ソースの検索候補を取得するために、フルテキスト検索を使用します。 フルテキスト検索は、レコードを小さい単位 (個々の単語など) に分割するフルテキスト フィールド インデックスを使用する効果的な検索方法です。 たとえば、米国の郵便局の位置を表すレイヤーに、すべての郵便局名を含む名前フィールドがあるとします。 このインデックスは、「Highland Station Baltimore Post Office」という名称を、検索可能な 5 つの単語 (HighlandStationBaltimorePostOffice) に分割します。 「Baltimore Office」、「Highland Baltimore」、「Stat Balt Office」など、これらの単語の任意の組み合わせ (または単語の冒頭部分のみの組み合わせ) で構成される検索語句を入力すると、検索候補にその郵便局が表示されます。

ホスト フィーチャ レイヤーの所有者か組織管理者である場合、フルテキスト フィールド インデックスをリスト ウィジェットかテーブル ウィジェットの検索フィールドとして選択すると、ホスト フィーチャ レイヤー向けに自動的に生成されます。 また、レイヤーのアイテムの詳細ページの属性フィールドにインデックスを手動で追加することもできます インデックスがないレイヤーがあり、レイヤーを編集する権限がない場合は、検索ウィジェットは START WITH abc% を使用して候補を検索します。つまり、ウィジェットは検索語句で開始するレコードを検索します。 これは効率性の低い検索方法です。

検索結果を取得するには、ウィジェットでは CONTAIN %abc% を使用します。つまり、検索語句はレコード内のどこに含まれていてもかまいません。 たとえば、「alt」を検索すると、Baltimore、Salt Lake City、Alton が検索結果に表示されます。

注意:

フルテキスト検索は 2023 年 10 月リリースの Experience Builder で追加された最新の変更点です。 このリリース以前のウィジェットでは、CONTAIN %abc% を使用して候補と結果の両方を取得していました。 CONTAIN %abc% クエリとは異なり、フルテキスト検索では、単語の中に含まれる検索語句は見つけられません。 上記の例では、「altimor」や「ighlan」を検索しても、想定される郵便局が検索候補に返されません。 マップとアプリのフィーチャを検索する方法の詳細

設定

検索ウィジェットには次の設定があります。

  • [新しい検索ソース] - コンテンツを検索するためのソースを追加します。 [レイヤー ソース] または [ロケーター ソース] を選択し、それぞれに以下の設定を指定します。
    • [データ] - 該当する場合、ユーザーが検索できるようにするフィーチャ レイヤーのデータ ソースを選択します。 データ ビューの設定では、データをフィルタリングして検索範囲を制限したり、データを並べ替えて検索結果を特定の順序で表示したりすることができます。
    • [ロケーターの URL] - ロケーター ユーティリティ サービスを接続します。 [ユーティリティの選択] パネルには、組織の設定で指定したか [ユーティリティ サービス] パネルで追加したロケーターが表示されます。
    • [ラベル] - 検索ソースの名前を入力します。 この名前は検索メニュー、候補リスト、結果パネルに表示されます。
    • [アイコン] - ソースのアイコンを選択します。 このアイコンは、候補リストと検索結果パネルに表示されます。 [一般] ギャラリーと [矢印] ギャラリーからアイコンを選択するか、ファイルから独自のアイコンを追加できます。 [削除] ボタンをクリックして、未使用のアップロード済みアイコンを削除します。
      注意:

      次の画像形式をアップロードできます: PNG、GIF、JPG、JPEG、BMP。 最適なパフォーマンを維持するために、1 回のアップロードに対して 10MB のサイズ制限が設けられています。

    • [検索オプション] - 次の追加オプションを設定できます。
      • [検索フィールドの選択] (レイヤー ソースのみ) - レイヤー内で検索するフィールドを 1 つ以上選択します。
      • [完全一致] (レイヤー ソースのみ) - 検索結果を検索語句に一致するレコードのみに限定します。
      • [表示フィールド] - 検索結果パネルに表示するフィールドを 1 つ以上選択します。 選択したフィールドをドラッグして並べ替えることができます。
      • [ヒント] - ユーザーがこのソースのみを検索するときに、検索ボックスに表示されるヒント テキストをカスタマイズします。
  • [レイヤー ソースの検索に向けてフィルターを有効化] - この設定がオンの場合、ユーザーが検索を実行すると、ウィジェットは接続されたレイヤー ソースを検索条件に従ってフィルター処理します。
  • [一般的な検索オプション] - 次の一般的な検索オプションを設定できます。
    • [複数の検索ソースに関するヒント] - ユーザーが複数のソースを検索するときに検索ボックスに表示されるヒント テキストをカスタマイズします。
    • [検索候補] - 検索ソースごとに表示される最大候補数を定義します。 次のオプションを構成することもできます。
      • [現在の位置を使用] - ユーザーの現在の位置に基づいて検索するための候補オプションを含めます。
      • [最近使用した検索] - 最近使用した検索の指定された最大数に基づいて、候補ボックスに検索履歴を表示します (ユーザーは検索履歴を消去できます)。
      ヒント:

      [ソース 1 つあたりの最大候補数] を 0 に設定し、検索ソースの候補を無効にします。

  • [検索結果] - 検索結果パネルを表示するか、アプリ内のページにリンクして別のウィジェットに結果を表示します。
    • 結果パネル- 検索ボックスの下に表示されるパネルに検索結果を表示します。 検索ソースごとに表示される結果の最大数を定義したり、最初の結果を自動的に選択したりすることもできます。
    • [リンクの設定] - アプリ内の特定のページ、ウィンドウ、セクションを開くか、特定のブロックまたはページの上部にスクロールして、対応するウィジェットに関連する検索結果を表示するためのリンクを追加します。 この設定は、[結果パネル] がオフの場合に表示されます。
    • [スタイル] - 結果パネルのインターフェイス スタイルとして、[クラシック] または [コンパクト] のいずれかを選択します。 [コンパクト] の場合、小さい折りたたみボタンがパネル下部に表示されます。
  • [配置スタイル] - ウィジェットのユーザー インターフェイスを [四角形][曲線][線形] から選択します。

操作オプション

検索ウィジェットのメッセージ アクションを構成する場合、検索ソースに応じて次のトリガーから選択できます。

トリガーレイヤー ソースロケーター ソース

レコード選択の変更

Yes

Yes

作成されたレコード

Yes

データのフィルタリングの変更

Yes

ロケーター ソースで構成した場合、検索ウィジェットは、他のウィジェットでも使用できる出力データ ソースを生成します。 同じ出力データ ソースを使用して、追加ウィジェットを操作するには、アクションを追加します。 たとえば、マップは検索結果を自動的に表示し、フィーチャにズームできます。 検索ウィジェットの設定の [アクション] タブで、[作成されたレコード] トリガーを追加し、ターゲット マップを選択して、[マップ上に表示][ズーム] のアクションを追加します。

選択した検索結果に対応するフィーチャをマップ上で選択するには、検索ウィジェットに [レコード選択の変更] トリガーを追加します (結果パネルを使用するように構成した場合)。 ターゲット フレームワークを選択し、[データ レコードの選択] アクションを追加して、マップのフィーチャ レイヤーと、トリガーとアクション データ間の接続をバインドするフィールドを構成します。 さらに、[ズーム] アクションを追加して、フィーチャにマップをズームできます。

レイヤー ソースで構成されると、選択した検索結果にマップをズームまたは画面移動する場合、[データのフィルタリングの変更] トリガーを追加し、ターゲット マップを選択して、[画面移動] アクションと [ズーム] アクションを追加します。

[ズーム] アクションのズーム レベルを調整するには、[ズーム縮尺][カスタム] に切り替え、目的の縮尺を指定します。

ヒント:

検索ウィジェットがデータをフィルタリングせずにマップ上でフィーチャを選択するには、レイヤー ソースとして使用できるデータ ソースのデータ ビューを作成します。

URL パラメーター

次のサブセクションでは、検索関連の URL パラメーターについて説明します。 URL ステータスの管理の下にある設定を使用すると、ユーザーが検索を実行したときに、これらのパラメーターが URL に表示されます。 検索ウィジェットのパラメーターは、ハッシュマーク (#) の後に続きます。

検索入力の表示

searchText パラメーターは、検索の実行のためにユーザーが入力したテキストを表示します。 searchText パラメーターを使用した URL の例を次に示します。

https://experience.arcgis.com/experience/<AppId>#<searchWidgetID>=search_status:%7B"searchText"%3A"<text>"%7D

検索ソースの表示

ユーザーが利用可能な検索ソースの一部のみを使用して検索を実行する場合、次の 2 つのパラメーターの 1 つが URL に表示されます。

  • 実行時にウィジェットのドロップダウン メニューで少なくとも 1 つの検索ソースがオフになっている場合、serviceEnabledList パラメーターが表示され、オンになっている検索ソースを定義します。 このパラメーターは、すべての検索ソースがオンになっている場合は表示されません。 エンコードされた URL の例を次に示します。
    https://experience.arcgis.com/experience/<AppId>#<searchWidgetID>=search_status:%7B"serviceEnabledList"%3A%5B"<SourceID1>"%2C"<SourceID2>"%5D%7D
  • ユーザーが検索候補をクリックして検索を適用した場合、"status":{"configId":"<SourceID>"} が表示され、現在の検索で使用されている一意の検索ソースを定義します。 検索入力と検索ソースの両方が URL に表示されます。 エンコードされた URL の例を次に示します。
    https://experience.arcgis.com/experience/<AppId>#<searchWidgetID>=search_status:%7B"searchText"%3A"<text>"%2C"status"%3A%7B"configId"%3A"<SourceID>"%7D%7D

ユーザーがロケーター ソースから検索候補をクリックした場合、候補に関連付けられている magicKey が URL に表示されます。 magicKey は、候補を特定の住所または場所にリンクする一意の ID です。 JSON 形式で記述された検索プロパティとパラメーターの例を次に示します。

{
	"searchText": "<text>",
	"status":{
		"configId": "<SourceID>",
		"magicKey": "<key>"
	}
}

エンコードされた URL に記述された上記と同じプロパティとパラメーターの例を次に示します。

https://experience.arcgis.com/experience/<AppId>#<searchWidgetID>=search_status:%7B"searchText"%3A"<text>"%2C"status"%3A%7B"configId"%3A"<SourceID>"%2C"magicKey"%3A"<key>"%7D%7D