はじめに
前回ではAzure AI Searchのチャンク分割+ベクトル化のやり方について解説しました。
この方法では言語アナライザーがデフォルト(英語)になってしまうので、フルテキスト検索の精度が悪くなってしまいます。今回は言語アナライザーを日本語にする方法について解説していきます。
やり方
インデックスを作る部分は前回の記事をご参照ください。今回はこちらの作成済みのインデックスを使います。
先ほどメモ帳にコピーしたJSON形式のインデックスを貼り付けます。
テキストが格納されている「chunk」フィールドのアナライザーを「null」->「ja.lucene」に変更します。
同様にタイトルが格納されている「title」フィールドのアナライザーも「null」->「ja.lucene」に変更します。
(2024年6月3日追記)「vectorizers->azureOpenAIParameters->apiKey」のフィールドが「redacted」とかかれており、マスキングされています。この状態で保存すると、検索時にAOAIへのリクエストで401(Unauthorized)のエラーが発生します。
AOAIのリソースからキーを取得し、apiKeyの部分を変更しましょう。
赤の警告が削除されると「保存」ボタンがクリック出来るようになります。
(追記)次にスキルセットのテキスト分割部分の言語を日本語に変更します。
スキルセットから作成されたスキルを選択してください。
「Microsoft.Skills.Text.SplitSkill」スキルの「defaultLanguageCode」が「en」になっていると思うので、「ja」に変更してください。チャンクサイズは「maximumPageLength」オーバーラップは「pageOverlapLength」で指定可能です。
インデックスの作成が完了したら、インデックスの画面で実際に上手くレコードが表示されるか確認します。
まとめ
今回は「チャンク分割+ベクトル化機能」で言語アナライザーを日本語に修正する方法について解説しました。インデクサーが作成されている場合は、インデックスのスキーマをいくらでも作り直すことが可能なので便利ですね。是非お試しください!