Cloud Software Group, Inc. EBX®
ドキュメント > リファレンスマニュアル > その他
ナビゲーションモードドキュメント > リファレンスマニュアル > その他

検索

概要

検索戦略は、フィールドのインデックス作成とクエリの方法を定義します。すべてのフィールドは、主にそのデータ型に基づいて、デフォルトの検索戦略に関連付けられています。

検索戦略は、データモデルアシスタントで指定されます。

以下も参照してください。

値のラベル付け

値のラベル付けは、未加工の値の代わりにユーザーフレンドリーなラベルを表示する EBX® のグローバル機能です。たとえば、ユーザーインターフェイスでは、外部キーフィールドにはリンクされたレコードのラベルが表示され、静的列挙に基づくフィールドにはデータモデルで指定された未加工の値に関連するローカライズされたラベルが表示されます。

フィールドで値のラベル付けがサポートされる場合、直感的なユーザーインターフェイスを維持するために、ユーザーインターフェイスでのクイック検索と並べ替えは通常、表示されたラベルに適用されます。

一部例外的に、未加工の値がクイック検索と並べ替え操作に使用される場合もあります。

明らかに、フィールドが UIWidget (または UIBean) を介して表示される場合、直感的なユーザーインターフェイスを維持するために、カスタムコンポーネントではラベル (このフィールドで値のラベル付けが有効でない場合は値) の表示が期待されます。

制限事項

次のフィールドは、検索やその他の演算子に対して最適化されていません。

結果として、これらは通常、osd:search('', 'pattern') による クイック検索 および テーブルの xpath 検索から除外されます。

継承されたデータセット、履歴ビュー、またはマップされたテーブルの特定のケースでは、レガシー検索が使用されます。これは、テーブルのサイズをすぐに見積もることができず、UI に表示されない可能性があることを意味します。また、次のようなクイック検索も意味します。

表示パターンを定義するノードの場合、デフォルトの検索テンプレートでは並べ替え不可能な検索戦略は禁止されています。ただし、他の検索テンプレートでは許可されています。

文字列フィールドの検索戦略

文字列の基本的なビルトイン戦略

「テキスト」

「テキスト」検索戦略は、説明、テキスト、コメントなどの複数の単語を含める場合に使用します。この戦略は、全文検索とあいまい検索をサポートします。並べ替え、および「equals」や「starts-with」演算子などの一部の関数は無関係であり、サポートされません。この戦略は軽量で、ディスクスペースをほとんど消費しません。

クイック検索も参照してください。

「コード」

「コード」検索戦略は、コードと識別子を対象としています。値は単一のトークンと見なされ、大文字と小文字を区別するあらゆる種類のフィルターを使用できます。全文検索は無関係であり、デフォルトでは「contains」に置き換えられます。これは、カスタムの「コード」戦略を定義することにより、「starts-with」に変更できます。大規模の検索では、パフォーマンスの向上のため、「starts-with」の使用をお勧めします。

「名前」

「名前」検索戦略は、数語のみを含む名前やラベルを対象としています。「テキスト」と同じ検索機能に加えて、「名前」戦略では並べ替えも可能で、「コード」と同じフィルターをサポートします。この戦略は最も多くの機能を備えていますが、より多くのディスクスペースを消費します。フィールドで使用できる場合は、この戦略ではなく、「テキスト」、「コード」、または「検索から除外」の戦略を選択することをお勧めします。

文字列の高度な戦略

高度な検索戦略は、別のファジーアルゴリズムを使用した検索をサポートすることを目的としており、並べ替えやフィルタリング操作はサポートしていません。カスタム検索テンプレートでそれらを使用し、デフォルトの検索テンプレートで基本的な戦略を使用することをお勧めします。

「レーベンシュタイン」

「レーベンシュタイン」戦略は、少数の単語を含む名前とラベルを対象としています。この戦略は、編集距離アルゴリズムに基づくあいまい検索のみをサポートします。検索構文 (+、-、...) はサポートされていません。この戦略は、大容量ではうまく機能しません。戦略のパラメーターにより、最大編集距離を 1 に設定し、不変のプレフィックスを使用することで、パフォーマンスを優先することができます。

「Soundex」

「Soundex」戦略は、少数の単語を含む名前とラベルを対象としています。この戦略は、Soundex 近似音声アルゴリズムに基づくあいまい検索のみをサポートします。このアルゴリズムは英語用で、数字を無視します。

「Double Metaphone」

「Double metaphone」戦略は、少数の単語を含む名前とラベルを対象としています。この戦略は、Double metaphone 近似音声アルゴリズムに基づくあいまい検索のみをサポートします。このアルゴリズムは、Soundex よりも最新であり、特に英語以外の言語でより良い結果が得られます。数字は無視されます。

「NGram 戦略」

「NGram」戦略は、少数の単語を含む名前とラベルを対象としています。この戦略は、距離アルゴリズムに基づくあいまい検索のみをサポートします。このアルゴリズムは、値を「グラム」と呼ばれる小さなシーケンスに分割します。「レーベンシュタイン」検索戦略よりも優れたパフォーマンスを発揮しますが、より多くのディスクスペースを消費します。

文字列フィールドのデフォルト戦略

「名前」戦略は、以下を除いて、デフォルトで文字列フィールドに適用されます。

デフォルトの「名前」戦略が無関係であり、より多くのディスクスペースを消費する可能性があるため、データモデルのコンパイルでは、戦略が意図的に定義されていることを確認するために、「名前」戦略がデフォルトとして設定されているフィールドで警告が報告されます。概算で、期待される値の長さが 80 バイトを超える場合は、「テキスト」戦略を選択することをお勧めします。長い値 (UTF-8 エンコードでは 32766 バイト超) は、「名前」または「コード」戦略で完全にインデックス付けできません。クイック検索は影響を受けませんが、並べ替えでは最初の 1000 バイトのみが考慮され、一部の演算子 (「equals」および「ends-with」、SQLDISTINCT および COUNTDISTINCT、...) は正しい結果を返しません。

高度なカスタム戦略

一部の戦略は、たとえばストップワードや特定の言語を定義するためのパラメーターを受け入れます。これは、「検索」データモデル拡張機能の「検索戦略」テーブルにレコードを作成することによって行われます。新しいパラメーター化された戦略は、互換性のあるフィールドの [拡張機能] タブで選択できるようになります。

同義語とストップワード

「検索」データ モデル拡張機能でストップワードと同義語のリストを定義できます。「ストップワードリスト」または「同義語リスト」テーブルに新しいレコードを作成し、「カスタム検索戦略」テーブルの [パラメーター] タブで作成したリストを選択します。

主キーフィールドの検索戦略

主キーフィールドには、デフォルトの検索テンプレートで定義された並べ替え可能な検索戦略が必要です。これには、すべてのデータ型の「Void」戦略と文字列の「テキスト」戦略は含まれません。デフォルトの検索テンプレート以外の検索テンプレート内で定義されている場合は、主キーフィールドに並べ替え不可能な検索戦略を使用できることに注意してください。

外部キーフィールドの検索戦略

外部キーフィールドには、次の 2 つのレベルの検索があります。

以下も参照してください。
以下も参照してください。

関連付けの検索戦略

関連付けの場合、検索は関連付けレコードのラベルで使用される各フィールドに対して実行されます (各フィールド戦略はターゲットテーブルのフィールドから継承されます)。適用するには、ターゲットフィールドが検索用に最適化されており、検索基準がその型に変換可能である必要があります。

関連付けの検索はラベルの最適化されたフィールドにのみ適用できるため、継承されたデータセットでは機能しません (制限事項で説明されているように、最適化された検索はサポートされていません)。

検索からのフィールドの除外 (「Void」インデックス)

「検索から除外」 (または Void) 戦略は、インデックス付けを無効にし、フィルターの作成、検索、または並べ替えを不可能にします。すべてのデータ型で使用でき、クエリされないフィールドを対象としています。値には、レコードからアクセスできます。インデックス付けを無効にすると、消費されるディスクスペースが減り、データインポートなどの一部の処理が高速化されます。

検索からのフィールドの除外 (プロパティ)

プロパティ osd:defaultView/hiddenInQuickSearch="true|false" を使用して、クイック検索ツールからフィールドを除外することもできます。

詳細については、デフォルトビューを参照してください。

フィールドへの検索戦略の割り当て

検索テンプレートを使用して、検索戦略をフィールドに関連付けることができます。これは、データモデルアシスタントで、フィールドの [拡張機能] タブで実行されます。フィールドに複数の検索戦略を割り当てるには、追加の検索テンプレートをモジュールに登録する必要があります。追加の検索テンプレートに関係するのは、アドオンの EBX® Information Search とEBX® Match and merge のみです。

ドキュメント > リファレンスマニュアル > その他