問合せ結果でのスペル修正およびDYMの取得

対話Webサービス・リクエストのSearchAdjustmentConfigタイプを使用して、問合せで自動スペル修正および提案される修正(もしかして)の情報を取得できます。

データ・ドメインでスペルが有効になっており、対話Webサービス・レスポンスにスペル修正とスペル提案(DYM)に関する補足情報を含める場合は、SearchAdjustmentConfigタイプが必要です。これが含まれる場合、スペル修正やDYMの提案は、レスポンスの一部として返されます。

スペルが有効になっている場合、SearchAdjustmentConfigタイプが含まれない場合でも、スペルの自動修正が行われることを認識しておくことが重要です。ただし、スペル修正が行われても、スペル修正とDYMの提案はレスポンスで返されません。

SearchAdjustmentConfigの構文

SearchAdjustmentConfigの書式は次のとおりです。
<SearchAdjustmentConfig Id="?">
   <StateName>?</StateName>
</SearchAdjustmentConfig>
属性の意味は次のとおりです。
属性 意味
Id この構成の任意の識別子を提供する必須属性。
StateName 次のルールを使用して、リクエストで既存の名前付きの状態を指定します。
  • リクエストに複数の名前付きの状態がある場合は、StateName要素で名前付きの状態を1つだけ参照する必要があります。
  • リクエストに名前付きの状態が1つだけある場合は、StateName要素を使用してその名前付きの状態を参照するかどうかはオプションです(RecordListConfigのどのイベントでもその状態が使用されるため)。
  • リクエストに名前のない状態がある場合は、StateName要素を使用できません。

SearchAdjustmentConfigの例

レスポンスでスペル修正の調整とDYMの提案が返されるように、このレコード検索の例にはSearchAdjustmentConfigタイプが含まれています。
<Request xmlns="http://www.endeca.com/MDEX/conversation/3/0">
   <State>
      <TextSearchFilter Key="Flavors" Mode="AllPartial" EnableSnippeting="false" Language="en">pech</TextSearchFilter>
   </State>
   <RecordListConfig Id="RecList" MaxPages="10">
      <Column>Flavors</Column>
      <RecordsPerPage>5</RecordsPerPage>
   </RecordListConfig>
   <SearchAdjustmentConfig Id="SpellCorrect"/>
</Request>

この例では、単語peachがpechとスペルミスされていることに注意してください。

自動スペル修正のレスポンス

対話Webサービスからのレスポンスには、検索フィルタが適用されたリクエストの元のState、および元の(スペル修正されていない)単語pechが含まれます。レスポンスにはSearchAdjustmentsタイプも含まれます。
<cs:SearchAdjustments Id="SpellCorrect">
   <cs:AppliedAdjustment>
       <cs:TextSearchFilter Key="Flavors" Mode="AllPartial">pech</cs:TextSearchFilter>
       <cs:AdjustedTerms>peach</cs:AdjustedTerms>
   </cs:AppliedAdjustment>
</cs:SearchAdjustments>

SearchAdjustmentsレスポンスのAppliedAdjustmentAdjustedTerms要素には、自動的に修正された単語peachが含まれます。要素(AppliedAdjustment)の名前は、修正されたスペルが自動的に問合せに適用されたことを示し、その修正が結果(この例では2593レコード)に反映されます。

明示的なスペル提案(DYM)のレスポンス

明示的なスペル提案の場合、検索でpeachのスペルミスpechrを使用した次の例のように、SearchAdjustmentsレスポンスには(AppliedAdjustment要素ではなく)SuggestedAdjustment要素が含まれます。
<cs:SearchAdjustments Id="SpellCorrect">
   <cs:SuggestedAdjustment RecordCountIfApplied="2593">
       <cs:TextSearchFilter Key="Flavors" Mode="AllPartial">pechr</cs:TextSearchFilter>
       <cs:SuggestedTerms>peach</cs:SuggestedTerms>
   </cs:SuggestedAdjustment>
</cs:SearchAdjustments>

要素(SuggestedAdjustment)の名前は、その単語が単なるDYMの提案であり、問合せに適用されなかったことを示します。RecordCountIfApplied要素は、その提案を適用すると2593レコードが返されることを示しています。それらのレコードを取得するには、提案された単語peachを検索語としてレコード検索問合せを再送信します。