ワイルドカード検索のパフォーマンスを最適化するために、次の推奨事項を使用します。
- 索引作成に必要な増加時間を計上する。一般に、ワイルドカード検索は、(ユーザーが使用しない場合でも) Oracle Endeca Serverで有効化され、索引作成に必要な時間とディスク領域が増加されます。そのため、まずEndecaアプリケーションのビジネス要件を考慮して、ワイルドカード検索を使用する必要があるかどうかを判断します。
注意: パフォーマンスを最適化するため、Oracle Endeca ServerのDgraphプロセスは、1024文字未満の単語にワイルドカード索引作成を実行します。1024文字より長い単語は、ワイルドカード検索のために索引付けされません。
- また、レコードをロードする前にワイルドカード検索が有効化されておらず、これを有効にするために構成Webサービス・リクエストを発行する場合、大量のレコードがデータ・ドメインに存在すると、再索引作成が行われるため、処理時間の増加につながります。
- 情報の少ない問合せを使用しない。最適なパフォーマンスのために、abc*やab*deなどのように、ワイルドカード検索問合せには、少なくとも2、3文字のワイルドカードではない文字を含めて使用します。a*のように、ワイルドカードではない文字が1文字しか含まれないワイルドカード検索は行わないようにします。a*のように、極端に情報の少ないワイルドカード問合せは、処理にかなり長い時間が必要です。
*. (スターにピリオドが続く)または* * (スター、空白、スター)などのように、ワイルドカードのみ、またはワイルドカードと句読点や空白のみを含む問合せは、Oracle Endeca Serverによって拒否されます。
-
標準的なワイルドカード問合せの場合の形式の分析。これにより、特定のワイルドカード検索パターンに関連するパフォーマンスの影響を認識できます。
ab*c.def*のように、テキストの文字列間に句読点の構文を含む問合せがありますか。
句読点を含む文字列の場合、Dgraphプロセスによって、句読点で区切られたそれぞれのワイルドカード式に一致する単語のリストが生成されます。この場合のみ、Dgraphは--wildcard_max <count>設定を使用して、そのパフォーマンスを最適化します。
--wildcard_max <count>を増やすと、句読点を含む文字列のワイルドカード検索によって返される結果の完全性は向上しますが、パフォーマンスに悪影響を及ぼします。そのため、適切なトレードオフを提供する数を見つけることもできます。