PutManagedAttributeValuesにより管理属性値を追加する場合は、この管理属性内で特定の値の固定ランキングを追加(その後、更新)できます。固定ランキングは、Endeca Serverによってエンドユーザーに絞込みを返すときの値の表示方法に影響します。
固定ランキングは、構成Webサービスの次の構造で
rankとして指定します。
<ns:putManagedAttributeValues>
<ns1:mav>
<name>?</name>
<spec>?</spec>
<parent>?</parent>
<managedAttribute>?</managedAttribute>
<synonym>?</synonym>
<rank>?</rank>
</ns1:mav>
注意: ランキングは、構成WebサービスのPutManagedAttributeValuesでのみ制御できます。このインタフェース操作では、ランクの追加に加えて、同順位の解決と重複したランクの回避が可能です。一方、データ・インジェストWebサービスを使用して(ingestChanges:addRecordsリクエストによりレコードとして)管理属性値を追加する場合、ランクは追加できますが、この操作ではランキングの同順位は解決されません。
次の文で、Endeca Serverによるランク値の使用方法について説明します。
- 特定の管理属性内の管理属性値は、そのランクに従って昇順で順序付けされます(ランクが指定されている場合)。どの値にもランクを指定しなかった場合、Endeca Serverではランクがゼロ(0)とみなされ、それに従って値がランク付けされます。
- ランキングは、特定の管理属性に対して追加されたすべての値内で設定されます。ランキングは、管理属性の階層から独立しています。たとえば、管理属性locationにある2つの管理属性値MAとNY Stateを、それぞれ1と2にランク付けできます。さらに、MAの子の値BostonとSpringfieldを3と4にランク付けできます。
- 管理属性値を最初に追加または更新するとき、またはputManagedAttributeValuesを使用して既存の値を更新するときに、ランクを指定できます。更新の場合は、新しいランクが使用され、影響を受ける値が再度順序付けされます。
- (putManagedAttributeValuesリクエストの使用時に)管理属性値のランクが同じ管理属性の別の値のランクと同順位である場合は、次のアルゴリズムに従って既存の値のランクが変更されます。追加するそれぞれの値Aについて、Aにランク(A)が割り当てられた場合にすでにランク(A)と同一のランク(B)の値Bが存在するときは、かわりにBにランク(B)+1が割り当てられます。新しいランク(B)+1が既存の値Cのランクと同順位である場合は、Bが新しい値であるかのように再度同順位が解消されます。(つまり、Cのランクがランク(C)+1になります。)同順位がなくなるまで、このプロセスが繰り返されます。リクエストで指定した他のすべての値のランクは、後続のリクエストによって変更されないかぎり、そのまま維持されます。
- (putManagedAttributeValuesリクエストの場合のみ)同じリクエストで2つの管理属性に同じランクを指定することはできません(この構成Webサービス・リクエストは拒否されます)。指定した値のいずれかに誤りがある場合は、リクエスト全体が失敗します。(データ・インジェストWebサービス・リクエストを使用する場合は、このチェックが行われないことに注意してください。)
- 全体的に、グローバルまたは問合せごとに絞込み(標準属性値と管理属性値の両方を構成)を順序付けできます。
- グローバル順序の場合は、属性(標準と管理の両方)に対して、関連付けられたPDR内のsystem-navigation_Sortingプロパティでrecord-countまたはlexicalの値を指定します。
- 問合せごとの順序の場合は、その問合せに対して、特定の対話Webサービス・リクエストのRefinementConfig内でOrderByRecordCount="false"を指定します。問合せ時制御は、グローバル順序をオーバーライドします。
これらのどちらの方法を使用するかに応じて、Endeca Serverでは、管理属性値に指定した固定ランキングの同順位を解消するために次のロジックが使用されます。
- record-countが有効の場合、Endeca Serverは最初にrecord-countを使用してから、管理属性値の固定ランクの同順位を解消し、結果を返します。
- lexicalが有効の場合、Endeca Serverは最初に固定ランク番号を使用してから、絞込みをその辞書順に基づいて順序付けします。つまり、管理属性値に関連付けられているランク番号がある場合、Endeca Serverは、これらの絞込みを返すときやソートするときに、これらのランク番号を考慮します。ランクが指定されていない場合は、ランクが0とみなされることに注意してください。これは、実際には、辞書順に順序付けされた絞込みが最初に返され、管理属性値に固定ランクがあるものが続くことを意味します。回避策として、このような場合は負のランクを追加し、ランクのある管理属性値がランクのない値よりも前にソートされるように設定できます。