データ・ドメインのスペル辞書の更新

データ・インジェストWebサービスのupdateSpellingDictionaries操作を使用して、データ・ドメインのスペル辞書を更新します。Dgraphでスペル修正を有効にするには、データ・ドメインにデータ・レコードを追加した後でこの操作を実行します。

この操作では、Endeca Serverを実行しながら、データ・コーパスからスペル修正用にスペル辞書を再構築します。Endeca Serverでは、Dgraphノードを停止および再起動しなくても、エンド・ユーザーの問合せを処理しながらデータ・ドメインの索引を更新できます。

このデータ・ドメインのDgraphプロセスでスペル修正を有効にするには、データ・ドメインにデータ・レコードを追加した後でこの操作を実行します。

また、データ収集プロセス中に、updateSpellingDictionaries操作を指定したリクエストを定期的に実行し、自動スペル修正やDYM (Did You Mean?)と呼ばれるEndeca Server機能のいずれかのために、データ・ドメインのスペル辞書を更新できます。

Dgraphノードのクラスタ(マルチホスティングのEndeca Serverマシン上で実行されているデータ・ドメイン)では、このリクエストは更新操作であるため、リーダー・ノードにルーティングされます。

リクエストでは、次の処理を実行します。
  • 制約設定を満たすすべての用語について、データ・ドメインの索引のテキスト検索部分をクロールします。

    制約設定には、レコードと属性値に関する最小単語出現数、最大文字数および最小文字数が含まれます。データ・ドメインのDgraphノードでは、これらの制約を使用してスペル辞書を更新します。これらは、グローバル構成レコードで変更できます。

  • 索引ファイルに対するこの更新の後に着信するすべての問合せを処理するために、Dgraphに格納されているスペル辞書を更新します。Dgraphでは、以降のすべての問合せを処理する際に更新後の辞書を使用します。スペル辞書の詳細は、『Oracle Endeca Server開発者ガイド』を参照してください。
Dgraphプロセスでは、問合せを実行しながら更新後の設定を適用するため、再起動の必要はありません。

データ・ドメインのスペル辞書を更新するには、次のようにします。

  1. データ・ドメインのデータ・インジェストWebサービスにアクセスします。
    http://localhost:<port>/endeca-server/ws/ingest/<dataDomain>?wsdl

    ここで、localhostおよびportは実行中のOracle Endeca Serverのホストおよびポート、endeca-serverはWebLogic Serverで実行されているEndeca Server Javaアプリケーションのデフォルトのコンテキスト・ルート、dataDomainはEndecaデータ・ドメインの名前です。

  2. 次の例のように、リクエストでupdateSpellingDictionaries操作を使用します。
    <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" 
      xmlns:ingest="http://www.endeca.com/MDEX/ingest/3/0">
     <soapenv:Header/>
         <soapenv:Body>
            <ingest:updateSpellingDictionaries>
               <ingest:OuterTransactionId>txId</ingest:OuterTransactionId>
            </ingest:updateSpellingDictionaries>
          </soapenv:Body>
    </soapenv:Envelope>

    ここで、txIdは外部トランザクション(実行されている場合)のIDです。

    注意: 外部トランザクションを開始するトランザクションWebサービスのリクエストの後に、このリクエストを送信する場合、そのリクエストでは外部トランザクションID要素を指定する必要があります。トランザクションが開始されていない場合、ID要素を省略するか、その値を空にする必要があります。

データ・ドメインが存在し有効な場合、操作は正常に完了し、空のWebサービス成功レスポンス(updateSpellingDictionariesResponse)が返されます。これは、スペル辞書が正常に更新されたことを意味します。