値検索問合せの形式

値検索問合せを作成するには、ValueSearchConfigタイプを使用して、SearchTerm要素と、オプションで検索する属性を指定します。

ValueSearchConfigタイプは、単一の値検索問合せの動作を制御します。このタイプの構文は次のとおりです。
<ValueSearchConfig Id="?" MaxPerProperty="?" RelevanceRankingStrategy="?" Mode="?" Language="?">
   <StateName>?</StateName>
   <SearchTerm>?</SearchTerm>
   <RestrictToProperties>
      <Property>?</Property>
   </RestrictToProperties>
</ValueSearchConfig>

SearchTerm要素は、値検索可能なすべての属性、またはRestrictToPropertiesで指定する属性のいずれかに対する検索のために、Oracle Endeca Serverによって使用される検索語を指定します。オプションで、MaxPerPropertyを使用して、各属性に対して返される検索一致の数を制限できます。

ValueSearchConfigタイプには、次のパラメータがあります(一部はオプションです)。
パラメータ 説明
Id オプションです。この問合せ構成の識別子。
MaxPerProperty オプションです。レコード属性当たりで返される一致の数を制限します。この属性が省略された場合、レコード属性に対して検出されたすべての一致が返されます。
RelevanceRankingStrategy オプションです。結果で使用する関連性ランキングの方針を指定します。この属性を省略して関連性ランキングの方針を指定しない場合、DIMSEARCH_CONFIG構成ドキュメントに指定された方針の値が使用されます。ドキュメントで方針を指定しない場合、(同順位をなくすために) interpexactおよびstaticの3つの方針をこの順序で使用して結果をランク付けします。
Mode オプションです。AnyAllPartialなどの検索モードを指定します。Modeを使用しない場合、問合せはデフォルトでAll検索モードの使用に設定されます。
Language オプションです。検索の言語IDを指定します。有効な言語IDは、「サポートされる言語」トピックにリストされています。
RestrictToProperties オプションです。指定しない場合、リクエストはすべての属性内で検索します。指定した場合、リクエストは指定した属性内で検索します。
SearchTerm 必須です。値検索を実行するために使用する検索語(キーワードとも呼ばれます)を含めます。各検索語の文字の最大数は、(Endecaコマンドput-dd-profileで)--search-char-limit構成フラグによって設定します(デフォルトは132文字です)。
StateName 次のルールを使用して、リクエストで既存の名前付きの状態を指定します。
  • リクエストに複数の名前付きの状態がある場合は、StateName要素で名前付きの状態を1つだけ参照する必要があります。
  • リクエストに名前付きの状態が1つだけある場合は、StateName要素を使用してその名前付きの状態を参照するかどうかはオプションです(RecordListConfigのどのイベントでもその状態が使用されるため)。
  • リクエストに名前のない状態がある場合は、StateName要素を使用できません。

値検索のコレクションの指定

特定のコレクション内のレコードに対して、値検索問合せを実行できます。そのためには、Stateタイプの<CollectionName>要素でコレクション名を指定してから、ValueSearchConfigタイプのStateName要素でStateの名前を参照します。

レスポンス

値検索問合せの結果は、ValueSearchタイプを含むResults複合タイプで返されます。ValueSearchレスポンスでは、次の情報が返されます。
  • PropertyMatches要素は、一致が検出された標準および管理レコード属性に対してのみ出現し、その一致の値が含まれます。
  • TotalValuesCountは、各値検索可能属性に対して返される値の数を指定します。
  • HasMoreは、返された属性一致の他に属性一致が存在するかどうかを指定します。リクエストは結果値の数を制限することがあるため、返された結果のリストは、返された値を含むと同時に、一致しているが返されない追加の値が存在することも示しています。

値検索問合せの例

次の例では、対話Webサービスでの通常の値検索リクエストの形式を示しています。
<Request>
   <State>
     <Name>MyProductSearch</Name>
     <CollectionName>Products</CollectionName>
   </State>
   <ValueSearchConfig Id="ProdSearch" MaxPerProperty="5" 
        RelevanceRankingStrategy="static (nbins,descending)" Mode="Any" Language="en">
      <StateName>MyProductSearch</StateName>
      <SearchTerm>aluminum</SearchTerm>
   </ValueSearchConfig>
</Request>

このリクエストでは、検索はProductsコレクションのレコード内で語envoyに対して実行されます。属性当たりで返されるリクエストされた結果の数は、5に設定されていて、英語(en)は検索用の言語です。

この例では、Stateの名前はMyProductSearchで、これによりProductsコレクションを指定しています。同様に、ValueSearchConfigタイプは、StateName要素を使用してMyProductSearch状態を構成に関連付けています。