対話Webサービス・インタフェースは、Oracle Endeca Serverに問い合せる操作を提供します。
ここでは、対話Webサービスの操作の概要を示します。
対話Webサービスで、リクエストがRequest複合タイプに反映されます(WSDLでは、すべての複合タイプがComplexTypeとしてリストされます)。
この問合せを使用して、初期フィルタのState(通常は、空であるか単純なレコード・フィルタを含む)およびいくつかのコンテンツ要素構成を作成します。これらのフィルタ状態とコンテンツ要素構成は対話Webサービス・リクエストで送信されます。
ContentElementConfigの内容には、Operator要素の数が含まれます。このような要素には、様々な種類の演算子すべてが該当します。これらの演算子によって、Oracle Endeca Serverへのリクエストが前のリクエストとどのように異なるかが示されます。すべての演算子タイプにはOperator複合タイプが対応します。
リクエスト元は、変更しないままレスポンスで返される任意のXMLを、PassThrough要素を介してリクエストに添付することもできます。
要約すると、このWebサービスの基礎となる対話は、対話Webサービスがコンテンツ要素のリストといくつかの演算子を提供し、フロントエンド・アプリケーションが演算子を選択し、対話Webサービスが新しいコンテンツ要素と新しい演算子を提供するという段階から構成されます。
<operation name="Request"> <input name="request" message="cs:Request"/> <output name="response" message="cs:Results"/> <fault name="fault" message="cs:Fault"/> </operation>
<complexType name="Request"> <sequence> <element name="OuterTransactionId" minOccurs="0" type="cs_v2_0:NonEmptyString"/> <element name="Language" minOccurs="0" type="cs_v2_0:NonEmptyString" default="en"/> <element name="State" type="cs_v2_0:State"/> <element name="Operator" type="cs_v2_0:Operator" minOccurs="0" maxOccurs="unbounded"/> <element name="ContentElementConfig" type="cs_v2_0:ContentElementConfig" minOccurs="0" maxOccurs="unbounded"/> <element name="PassThrough" type="cs_v2_0:CatchAll" minOccurs="0"/> </sequence> </complexType>
要素 | 説明 |
---|---|
OuterTransactionId | リクエストの最初の要素にする必要があり、オプションです。リクエストが外部トランザクション内で実行される場合にのみ指定する必要があります。 |
Language | EQL文の解析時に生成されるエラー・メッセージの言語コードを指定します。この要素とそのサポートされる言語コードの詳細は、「EQLフィルタの構文」を参照してください。 |
State | 操作するレコードのセットに影響する入力を含みます。フィルタ状態には、選択した絞込み、検索用語、EQLレコード・フィルタなどが含まれます。 |
Operator | フィルタ状態と構成を変換します。各リクエストには、一連の演算子が含まれる場合があります。よく使用される演算子のタイプ: ApplySpellingSuggestionOperator、RecordKindOperator、RefinementOperator、SearchOperator、SelectionFilterOperatorなど。
たとえば、演算子は次のようにリクエストに指定できます。
<Operator xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="SearchOperator" Within="false"> <SearchFilter Mode="AllPartial" RelevanceRankingStrategy="numfields" Key="PROD_CATEGORY" EnableSnippeting="false" Language="en"> electronics </SearchFilter> </Operator>演算子のタイプはSearchOperatorです。このフィルタに指定された構成情報でSearchFilterを適用します。 フィルタ状態から演算子を削除するには、PopName_of_operatorOperatorを使用できます(Name_of_operatorは、SearchOperatorなど、削除する演算子の名前です)。 |
ContentElementConfig | 特定のフィルタ状態に関連する特定の構成情報の提供を要求するOracle Endeca Serverへのメッセージを表します。様々なタイプのContentElementConfigが存在します。タイプによって、フィルタ状態のサマリーまたは、ブレッドクラムのセット、ナビゲーション・メニュー、グリッドやチャートのデータなど、そこに含まれるデータを記述できます。
typeに指定できる値: AttributeGroupConfig、AvailableSearchKeysConfig、BreadcrumbConfig、LQLConfig、NavigationMenuConfig、PropertyListConfig、RecordCountConfig、RecordDetailsConfig、RecordListConfig、SearchAdjustmentsConfig、ValueSearchConfig。 また、各typeについて、対応するHandlerFunction、ネームスペースおよびIDを次の例のように指定する必要があります。
<ContentElementConfig xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="RecordListConfig" Id="RecordList" HandlerNamespace="http://www.endeca.com/MDEX/conversation/handlers/2010" HandlerFunction="RecordListHandler"> |
PassThrough | リクエストに任意のXMLを追加するためのプレースホルダ要素。変更されないままレスポンスで返されます。 |
Request操作は、Resultsレスポンスを出力します。レスポンスには、それを生成したRequest要素と、リクエストされたコンポーネントが含まれます。各コンポーネントは、対応する構成がリクエストで提供されている場合にのみ返されます。つまり、対話Webサービスからのレスポンスには、絞込み、ブレッドクラム、およびナビゲーションに使用可能なその他のフロントエンド・アプリケーションの機能が含まれます。
<complexType name="Results"> <sequence> <element name="Request" type="cs_v2_0:Request"/> <element name="ContentElement" type="cs_v2_0:ContentElement" minOccurs="0" maxOccurs="unbounded"/> <element name="PassThrough" type="cs_v2_0:CatchAll" minOccurs="0"/> </sequence> </complexType>
障害時には、SOAPフォルトがスローされます。そのfaultstring要素には、エラーの原因となったリクエストに関する情報が含まれ、detail要素には、リクエストのエラーの場所へのポインタが含まれます。