複数のテーブルを検索するためのテキストインデックスグループの構成

  • リリースバージョン: Yokohama
  • 更新日 2025年01月30日
  • 所要時間:7分
  • テーブルを V4 インデックス作成形式に更新し、テキストインデックスグループに含めると、複数のテーブルにわたる検索が容易になります。

    始める前に

    必要なロール:ts_admin または admin

    このタスクについて

    テキストインデックスグループを使用すると、複数のテーブルにインデックスを付けて検索できます。

    複数のテーブル間で検索を実行するには、まずテーブルを正規化して、関連性スコアがすべてのテーブルで同じ意味を持つようにする必要があります。V4 インデックス作成はその正規化を提供します。Zing は、Okapi BM25 ランキング機能を使用して、検索結果の関連性スコアを計算します。

    V4 テーブルのインデックス作成形式は、ナレッジベース記事などのドキュメント用に最適化されています。フィールドの重みなどのインデックス作成属性の値を変更するときに、この形式を使用するテーブルのインデックスを再作成する必要はありません。単一のテーブルで BM25 ランキング機能を使用する場合は、V4 形式に変換できます。

    複数のテーブルを検索できるようにするには、次のようにします。
    1. V4 インデックス形式をまだ使用していない場合は、使用することを選択したすべてのテーブルを構成します。
      注:
      新しいインスタンスでは、カタログアイテム [sc_cat_item]、ナレッジ [kb_knowledge]、ソーシャル Q&A 質問 [kb_social_qa_question]、およびユーザー [sys_user] テーブルは、V4 インデックス形式を使用します。インスタンスを以前のリリースからアップグレードすると、これらのテーブルのインデックス作成形式は以前のリリースと同じになります。
    2. テーブルをテキストインデックスグループに追加して、インデックスを作成し、一緒に検索できるようにします。
      注:
      タスク [task] テーブルまたはそれを拡張するテーブルをテキストインデックスグループに追加することはできません。

    手順

    1. 複数テーブル検索に含めるテーブルが V4 インデックス形式を使用するように構成します。
      注:
      V3 から V4 へのアップグレードは簡単です。V4 から V3 にダウングレードすることは難しく、お勧めできません。
      1. 次のように移動する。 All (すべて) > システム定義 > テキストインデックスの構成.
      2. V4 インデックス形式にアップグレードするテーブルのレコードを開きます。
      3. [フォーマット] が無効になっていない場合は、[V4] を選択し、[送信] を選択して、ステップ 2 に進みます。
        テーブルのインデックスが存在しないため、このステップでインデックスの書式設定を選択できます。
      4. [形式] が無効の場合は、[インデックス名レコードを表示] 関連リンクを選択します。
        このフィールドが無効であるということは、テーブルのインデックスが既に存在するため、インデックス形式を明示的に更新する必要があることを意味します。
        [テキストインデックス] ページが表示されます。
      5. [V4 にアップグレード] 関連リンクを選択し、[OK] を選択します。
        テキストインデックスを V3 から V4 にアップグレードするタスクがスケジュール設定され、このテーブルが複数テーブルのインデックス作成に参加できるようになります。
    2. 一緒にインデックスを作成するテーブルを指定するテキストインデックスグループを作成します。これによりそれらのテーブルを一緒に検索できるようになります。
      1. 次のように移動する。 All (すべて) > システム定義 > テキストインデックスグループ.
      2. [New (新規)] を選択します。
      3. 次のフィールド値を入力します。
        フィールド
        ラベル インデックスを作成して一緒に検索するテーブルのグループの名前。
        テーブル テキストインデックスグループに含めるテーブルのリスト。

        V3 および V4 でフォーマットされたテーブルをテキストインデックスグループに追加できます。V3 テーブルを追加すると、テキストインデックスグループは無効のままになります。

      4. [送信] を選択します。
    3. テキストインデックスグループ内のテーブルのインデックス作成と検索属性を構成します。
      1. 次のように移動する。 All (すべて) > システム定義 > テキストインデックスの構成.
      2. [New (新規)] を選択します。
        [テキストインデックス構成] フォームが表示されます。リストに既にテキストインデックスグループがある場合は、手順 3.d に進みます。
      3. [適用先]で、[インデックスグループ] を選択します。
      4. [インデックスグループ] で虫眼鏡を選択し、作成したテキストインデックスグループを選択して、[送信] を選択します。
        表示されるテキストインデックスグループは、作成済みのテキストインデックスグループのみです。
        [テキストインデックス構成] テーブルが表示されます。
      5. テキストインデックスグループのレコードを開きます。
      6. [テキストインデックステーブルの属性マップ] タブで、[新規]を選択します。
        [テキストインデックステーブルの属性マップ] フォームが表示されます。属性は、Zing がテキストインデックスグループ内の個々のテーブルをインデックス付けまたは検索する方法に関係します。
      7. [テーブル] で、属性を定義するためのテーブルを選択します。
        指定されたテキストインデックスグループ内のテーブルとその子テーブルのみが表示されます。
      8. [属性名] で虫眼鏡を選択し、属性を選択します。
        属性のリストを表示するには、アプリケーションナビゲーターに ts_configuration_attribute.list と入力します。属性の定義については、「 Zing インデックスと検索属性」を参照してください。
      9. [値] に値を入力し、[送信] を選択します。
        有効な値は属性によって異なります。有効な値については、「Zing インデックスと検索属性」を参照してください。
      10. この手順を繰り返して、テキストインデックスグループ内のその他のテーブルに追加の検索エンジンパラメーターを定義します。
      11. [関連リンク] の下で、[テキストインデックスの生成] を選択します。
    4. テキストインデックスグループ内の個々のテーブル列に検索パラメーターを構成します。
      1. 次のように移動する。 All (すべて) > システム定義 > テキストインデックスの構成.
      2. テキストインデックスグループのレコードを開きます。
      3. [テキストインデックスの列属性マップ] タブで、[新規]を選択します。
        [テキストインデックスの列属性マップ] フォームが表示されます。属性は、Zing がテキストインデックスグループ内の個々のテーブル列をインデックス付けまたは検索する方法に関係します。
      4. [テーブル] で、属性を定義するためのテーブルを選択します。
        テキストインデックスグループ内のテーブルとその子テーブルのみが表示されます。
      5. [属性名] で検索エンジンパラメーターを選択し、[値] にそのパラメーターの値を入力して、[送信] を選択します。
        属性のリストを表示するには、アプリケーションナビゲーターに ts_configuration_attribute.list と入力します。属性の定義については、「 Zing インデックスと検索属性」を参照してください。
      6. [列] で、検索属性を適用する、選択したテーブルの列の名前を指定します。
      7. [値] で、検索を管理する属性の値を指定します。
      8. [送信] を選択します。
      9. この手順を繰り返して、テキストインデックスグループ内のテーブル列に追加の検索エンジンパラメーターを定義します。
      10. [関連リンク] の下で、[テキストインデックスの生成] を選択します。
    5. オプション: 同義語ディクショナリを追加します。
      ディクショナリを指定すると、検索用語と、検索用語の同義語が検索対象となります (たとえば car とその同義語である auto)。Zing には、デフォルトの同義語ディクショナリが用意されています。
      1. 次のように移動する。 All (すべて) > システム定義 > テキストインデックスの構成.
      2. テキストインデックスグループのレコードを開きます。
      3. [インデックスの同義語ディクショナリ] タブで、[新規] を選択します。
      4. [インデックス] で、ストップワードを追加するテーブルインデックスを選択します。
      5. [同義語ディクショナリ] で、使用するディクショナリを選択します。
        ディクショナリを追加するには、[新規] を選択し、[同義語ディクショナリの作成] の手順に従います。
      6. [送信] を選択します。
      7. [関連リンク] の下で、[テキストインデックスの生成] を選択します。
    6. [更新] を選択します。

    次のタスク

    123TEXTINDEXGROUP321 予約名 で GlideRecord.addQuery(name, value) または GlideRecord.addEncodedQuery(name, value) メソッドを使用して、文字列の一致についてテキストインデックスグループ内のテーブルをクエリすることができます。テキストインデックスグループに文字列一致をクエリする方法の詳細については、「スクリプトでのテーブルのクエリ」を参照してください。