クロスフィールド一致を許可するためのオプション

CROSS_FIELD_BOUNDARY属性は、Oracle Endeca ServerのDgraphプロセスが、属性の境界を越えた検索問合せへの一致を試行するタイミングを指定します。

CROSS_FIELD_BOUNDARYの3つの設定は次のとおりです。
設定 説明
ALWAYS

Dgraphは、属性内の一致に加えて、属性の境界を越えた一致を常に検索します。クロスフィールド一致を使用するよう選択している場合、ALWAYS設定をお薦めします。

たとえば、Sony cameraユーザー問合せで、CROSS_FIELD_BOUNDARYALWAYSに設定されている場合、DgraphはBrand = SonyおよびProduct_Type = cameraに一致するすべてを返します。

ON_FAILURE Dgraphは、単一の属性内での一致の検出に失敗した場合のみ、属性の境界を越えた問合せの一致を試行します。ほとんどの場合、ALWAYS設定では、ON_FAILURE設定よりも適切な結果が提供されます。
NEVER Dgraphは、境界を越えた一致を検索しません。これはデフォルトです。

デフォルトでは、検索インタフェースを使用するレコード検索問合せでは、各インタフェース・メンバーに対して実行された同じレコード検索問合せの結果を結合したものが返されます。

たとえば、actor属性とdirector属性を含むMoviePeopleという検索インタフェースがあるとします。このインタフェースに対してdeniroを検索すると、actor属性およびdirector属性に対してdeniroを検索した場合に生じるレコードの結合が返されます。

頻度は少ないですが、複数の属性に及ぶ一致を許可する場合もあります。たとえば、同じMoviePeople検索インタフェースで、clint eastwoodの問合せは、actor標準属性またはdirector属性のいずれかに、単語clintおよびeastwoodを含む値が割り当てられているレコードを返します。この動作は、検索語すべてが単一の概念(actor/directorのClint Eastwood)に関連するこの問合せに役立ちます。

ただし、各検索インタフェース・メンバーに対して実行された同じレコード検索問合せの結果を結合したものが返されると、不必要に制限されてしまう場合があります。たとえば、家電カタログのアプリケーションで、Sony cameraを探している顧客は、広範囲の製品に興味を持っていますが、このレコード検索では、製品名にSonyおよびcameraという語が含まれる製品しか返しません。

この場合、検索インタフェースの作成時に、CROSS_FIELD_BOUNDARY属性を使用できます。この属性は、Dgraphが、属性の境界を越えているが検索インタフェースのメンバー内である検索問合せへの一致を試行するタイミングを指定します。

複数割当ての場合のクロスフィールド一致の動作方法

検索インタフェース・メンバー(つまり検索可能属性)の値がレコードで複数割り当てられると、複数の割当ては、異なる属性からの値であるかのように、別の一致として、Oracle Endeca ServerのDgraphプロセスによって処理されます。同じ属性に対する別の複数割当ての値で2つ以上の語に一致する検索は、Dgraphプロセスによって、クロスフィールド一致として処理されます。

たとえば、次の属性値を持つレコードを考えてみます。

P_Tag: Tom Brady
P_Tag: Jersey

すべての結果が同じ属性(P_Tag)で検出されても、P_Tagに対するtom brady jerseyの検索は、クロスフィールド一致として処理されます。