会話Webサービスの変更

このトピックでは、Endeca Server 7.6.xの会話Webサービスにおける変更について説明します。

会話Webサービスはかなりリファクタリングされており、7.5.xの問合せは書き直す必要があります。

要求の状態

Endeca Server 7.5.xの場合と同様に、各要求には(<State>要素で定義する)状態があります。Endeca Server 7.6.xでは、要求には複数(2つ以上)の状態がある場合があります。この場合、各状態には、要求内の他の状態名において一意な(<Name>要素で定義される)名前が必要です。したがって、Endeca Server 7.6.xでは状態に名前が新規にあります。

状態はオプションで<CollectionName>要素を使用して、1つ(のみの)コレクション名を参照できます。

会話サービスの応答には、それを生成した全要求を含まなくなりました。要求の状態のみが返されます。

特定のサブクラスでのContentElementConfigsの置換え

Endeca Server 7.5.xでは、型を宣言するためにxsi:typeを使用するContentElementConfigが1つありました。Endeca Server 7.6.xではxsi:typeは削除され、configでは(RecordListConfigなど)そのサブクラスの名前を使用するようになりました。また、HandlerFunctionおよびHandlerNamespaceの要素も削除されました。

したがって、Endeca Server 7.5.xの次のような例は、
<ContentElementConfig 
    xsi:type="RecordListConfig"
    HandlerFunction="RecordListHandler"
    HandlerNamespace="http://www.endeca.com/MDEX/conversation/2/0"
    Id="RecordList" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <RecordsPerPage>25</RecordsPerPage>
    <Sort Key="Spec" Direction="Ascending"/>
</ContentElementConfig>
Endeca Server 7.6.xでは、次のようになります。
<RecordListConfig Id="RecordList">
    <RecordsPerPage>25</RecordsPerPage>
    <Sort Key="Spec" Direction="Ascending"/>
</RecordListConfig>

7.5.x LQLConfig configは、EQLConfigに名前変更されたことに注意をしてください。

演算子の削除

7.5.xでは、演算子のコンテキスト内でフィルタ要素が指定されていました。たとえば、レコードの検索フィルタの<SearchFilter>要素は、この例のように、型<SearchOperator><Operator>内で使用されていました。
<Request>
   <State/>
   <Operator xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:type="SearchOperator" Within="false">
      <SearchFilter Mode="AllPartial" Key="Prod_Category" Language="en">
       electronics
      </SearchFilter>
   </Operator>
...
7.6.xでは、問合せから演算子は削除され、状態にフィルタ名を直接指定するようになりました。したがって、前述の7.5.xの例は、7.6.xでは次のようになります。
<Request>
   <State>
      <TextSearchFilter Key="Prod_Category" RelevanceRankingStrategy="numfields"
         Mode="AllPartial" Language="en">
         electronics
      </TextSearchFilter>
   </State>
...

EQLのフィルタ

7.5.xのDataSourceFilterStringDataSourceFilterに、またSelectionFilterStringSelectionFilterに名前変更されています。いずれのフィルタにも、そのフィルタの名前となる新しい(オプションの) Id属性があります。

各フィルタは状態で複数回使用できます(7.5.xでは1度のみ使用可能でした)。複数のフィルタを使用する場合、各フィルタはその状態内において他のフィルタに対して一意である名前が必要です。

7.5.xの場合と同様に、各フィルタではEQL WHERE句構文を使用します。7.6.xでは、複数割当て属性を扱う際に、フィルタ文字列で新しいセット関数を使用することもできます。

レコード検索フィルタ

(レコード検索に使用する)7.5.xのSearchFilterは、(前述の例のとおり)TextSearchFilterに名前変更されました。

SelectedRefinementFilterおよびRecordKindフィルタの名前は、7.5.xと同一であることに注意してください。