統合検索の理解

製品によっては、ツールバー検索ボックスで、メニュー項目の標準検索に加えて、ビジネス・エンティティに対する製品固有の検索がサポートされている場合があります。たとえば、検索で、名前、住所、連絡先詳細などによるビジネス・エンティティの問合せがサポートされている場合があります。統合検索機能は製品のメイン検索の簡易バージョンで、ユーザーは自由書式の検索テキストまたはヒント・コードを使用してレコードを参照できます。より複雑な問合せでは、ユーザーが対応する詳細検索ポータルにナビゲートできる場合もあります。

統合検索オプションの構成には、次の項目が含まれます。
  • データ問合せを実装し、サポートされるフィルタを定義する検索サービス・スクリプト。このスクリプトに関連付けられたアプリケーション・サービスが、統合検索オプションを保護するために使用されます。

  • サポートされるフィルタの検索フィルタ・ルールおよびヒント。これらのルールは、ユーザーが入力したテキストを解析して、それが有効なフィルタ値として適格かどうかを判断するために使用されます。

  • より複雑な問合せに使用する詳細検索ポータル。

統合検索ボックスは、次のようにして統合検索オプションの実装と対話します。
  • ユーザーが検索ボックスに自由書式テキストを入力すると、アプリケーションは検索フィルタ・ルールおよびヒントを使用して、入力されたテキストを解析し、それを対応する問合せフィルタに変換します。

  • 次に、検索サービス・スクリプトがコールされて、これらのフィルタに一致するエンティティの問合せが行われ、結果が表示されます。

  • 結果レコードを選択すると、対応するポータルにナビゲートします。

  • 検索ボックスで「詳細検索」リンクを選択すると、統合検索オプションに関連付けられた一般的な問合せポータルにナビゲートします。

製品に対して統合検索オプションが有効になっていない場合、またはユーザーにそのオプションへのセキュリティ・アクセス権がない場合、検索ボックスはメニューの検索にのみ使用できます。

次の各項では、統合検索オプションの構成に関連する様々な側面について説明します。

すべてを制御する検索スクリプト

統合検索は、次のものを制御する単一のサービス・スクリプトとして実装されます。

  • 「フィルタ」。このスクリプトによって、サポートされるフィルタと、結果を効率的に返すためのフィルタの適用方法が決まります。各フィルタ名は有効なフィールド・レコードである必要があります。

  • 結果。スクリプトによって、ユーザーが指定した問合せフィルタに一致するビジネス・エンティティのリストが、リスト内の選択済レコードにドリルインするために必要なナビゲーション情報とともに返されます。

  • アプリケーション・セキュリティ。スクリプトのアプリケーション・サービスにアクセスできるユーザーのみが、検索スクリプトに関連付けられた統合検索を使用できます。

  • 詳細検索の上書き。スクリプトによって、検索オプションに構成されている詳細検索ポータルが上書きされる場合があります。

検索ボックス・コンポーネントが初期化されると、スクリプトが「検索詳細の準備」モードで1回コールされて、サポートされているフィルタ名のリストが返されます。このモードでは、スクリプトは問合せを実行しません。

ユーザーが検索ボックスにテキストを入力すると、検索ボックス・コンポーネントは、入力されたテキストを分析して問合せフィルタを導出し、「検索の実行」モードで検索スクリプトをコールして一致する結果を返します。

検索ボックス・コンポーネントは、あらゆるタイプの統合検索実装をサポートするように設計されているため、ユーザー・インタフェース・コンポーネントと検索スクリプトの間の対話は汎用的です。フィルタは名前/値のペアとして定義され、一致した各エンティティの結果には、1次、2次、3次の摘要行などの詳細と、エントリの一致するテキストを記述する行が含まれます。

注意: 組織でカスタム統合検索スクリプトを実装する必要がある場合は、参照としてこのようなスクリプトの基本製品の実装に従うことを強くお薦めします。

フィルタ・ルールとヒント

統合検索は、データを問い合せるための事前定義済フィルタ・セットをサポートするように設計されています。たとえば、住所、名前、識別子で顧客を検索したり、住所や名前で場所を検索するなどです。各フィルタは、検索サービス・スクリプトによって宣言されたフィールド名で一意に識別されます。

ユーザーが検索ボックスに自由書式テキストを入力すると、アプリケーションは解析ルールを適用して、統合検索でサポートされている1つ以上のフィルタの値としてそのテキストを使用できるかどうかを判断します。たとえば、ユーザーが"ave"というテキストを入力した場合、解析ルールによって、個人のEメール・アドレスではなく名前またはアドレスで結果をフィルタするためにそのテキストを使用できると判断されます。

「検索フィルタのルール」拡張可能参照で定義されている各解析ルールによって、フィルタのフィールド名が正規表現に関連付けられます。同じフィルタ名に対して定義されている複数のフィルタ・ルールは、実行順のシーケンスで処理されます。1つのルールで特定のフィルタの値として使用される検索テキストの一致を返すには、これで十分です。

または、ユーザーが明示的なヒント・コードを使用して、使用するフィルタおよびそれに続くフィルタ値を指定することもできます。たとえば、住所フィルタをヒント"ad:"に関連付けると、ユーザーが「ad: main」と入力して住所でレコードを参照できます。

「検索フィルタのヒント」拡張可能参照で定義されている各ヒントによって、フィルタのフィールド名がヒント・コードに関連付けられます。

フィルタ・ルールとヒントは、特定の統合検索オプションではなく、特定のフィルタ名に対して定義することに注意してください。同じフィルタ名を使用することで、同じ解析ルールを複数の検索で共有できます。たとえば、"email"フィルタや、addressフィルタの"ad:"ヒントを指定する解析ルールは、検索問合せでの使用方法に関係なく同じです。これらのルールは、同じフィルタ名を使用するすべての統合検索オプションに自動的に関連付けられます。

注意: フィルタに関連付けられている解析ルールおよびヒントをカスタマイズするには、基本製品の拡張可能参照レコードを無効化し、ビジネス要件に合致するカスタム・ルールを導入します。

統合検索のカスタマイズ

基本製品検索フィルタに関連付けられている解析ルールおよびヒントをカスタマイズするには、基本製品の拡張可能参照レコードを無効化し、ビジネス要件に合致するカスタム・ルールを導入します。

異なるビジネス・エンティティおよびフィルタの検索をサポートする必要がある場合は、カスタム統合検索を実装する必要があります。統合検索オプションの構成は、大まかに次のステップで行います。

  • 事前定義済フィルタ・セットをサポートし、パフォーマンス上の考慮事項を確認しつつ、一致する結果の最上位セットを返す検索スクリプトを設計して実装します。

  • サポートされている各フィルタに対して、必要に応じてヒントおよびフィルタ・ルールを設計します。該当する場合は、同じフィルタ名に関連付けられた既存のヒントおよびフィルタ・ルールを確認します。

  • ヒントがあれば、各ヒントを「検索フィルタのヒント」拡張可能参照に登録します。

  • フィルタ・ルールがあれば、各フィルタ・ルールを「検索フィルタのルール」拡張可能参照に登録します。

  • 検索スクリプトを「統合検索」拡張可能参照に登録します。