ご利用にはKandaSearchへの
ユーザー登録(無料)が必要です
最新バージョン: 1.1.0
開発者: RONDHUIT
ダウンロード数: 6
最終更新日: 2024-12-07
Copyright: RONDHUIT Co.,LTD
最新バージョン: 1.1.0
開発者: RONDHUIT
ダウンロード数: 6
最終更新日: 2024-12-07
Copyright: RONDHUIT Co.,LTD
セマンティック検索に必要なベクトルデータ作成用のスローインデクシングツールです。JSON形式のドキュメントをHuggingFaceのモデルを使ってベクトルデータを付与しながらゆっくりSolrに登録します。
KandaSeachで必要に応じてプロジェクトおよびインスタンスを作成します。詳細手順は、KandaSearchドキュメントのプロジェクトの作成とインスタンスの作成をご参照ください。
KandaSearchのSolrにアクセスできるよう、KandaSearchドキュメントインスタンスの設定の手順に従ってIPアドレスを適切に許可してください。
インデクシング対象となるJSON形式のドキュメントを用意します。サンプルデータとして、Livedoorニュース記事からドキュメント10件を抽出し作成したJSONファイルlivedoor-10docs.json
を使用します。記事ID、ニュース記事へのURL、ニュースタイトル、記事カテゴリー、記事本文、ニュース日付のフィールドからなります。Livedoorニュースコーパスについては、KandaSearch拡張機能ライブラリのLivedoor ニュースコーパス(mini)をご参照ください。
[
{
"id":"dokujo-tsushin-4778030.txt",
"url":"http://news.livedoor.com/article/detail/4778030/","category":"dokujo-tsushin","date":"2010-05-22T14:30:00Z",
"title":"友人代表のスピーチ、独女はどうこなしている?",
"body":[" もうすぐジューン・ブライドと呼ばれる6月。... ....",""," 「お願いがあるんだけど……友人代表のスピーチ、やってくれないかな?」"]}
},
... ...
]
... ...
<field name="title" type="text_ja" indexed="true" stored="true"/>
<field name="title_vector" type="knn_vector" indexed="true" stored="true"/>
<field name="body" type="text_ja" indexed="true" stored="true" multiValued="true"/>
<field name="body_vector" type="knn_vector" indexed="true" stored="true"/>
... ...
<updateRequestProcessorChain name="get-embeddings">
<processor class="com.rondhuit.solr.update.dense.EmbeddingsProcessorFactory">
<str name="clientType">COMMUNITY_JA</str>
<str name="sourceField">body</str>
<str name="targetField">body_vector</str>
</processor>
<processor class="solr.LogUpdateProcessorFactory"/>
<processor class="solr.RunUpdateProcessorFactory"/>
</updateRequestProcessorChain>
ベクトルデータを生成しながらインデクシングを行うには、ZIPに同梱されているシェルスクリプトvector_slow_indexing.shを実行します。
本ツールを実行するには、jqコマンドとcurlコマンドをインストールする必要があります。
ご使用環境のOSやShellの種類・バージョンによっては、スクリプトが実行できない可能性があります。シンタックスエラーなどが発生した場合、ご使用環境に合わせスクリプトを適宜修正してください。
以下のパラメータを指定し、スクリプトを実行します。
$ cd data_and_script
$ ./vector_slow_indexing.sh --json-data <json> --solr-url <url> --solr-collection <collection>
本スクリプトは、ベクトルデータの作成にHuggingFaceモデルを使用します。HuggingFaceの負荷を抑えるため一回のアップデートにつき、ドキュメントを一つのみ登録し、スリープを入れます。すべてのドキュメントが正常にインデクシングできるように、最大10回までリトライを行い、前回のデータ登録に失敗したドキュメントを再度インデクシングします。
※ ドキュメントサイズ、ドキュメント件数、登録失敗時のリトライ回数などにより実行時間が変動します。
-------------------------- Arguments --------------------------
JSON Data File : ./livedoor-10docs.json
Solr URL : https://mydomain.c.kandasearch.nl/solr
Solr Collection : mycore
---------------------------------------------------------------
[2024/12/07 14:23:40] Started indexing of 10 documents.
================================================ 1st indexing ================================================
[dokujo-tsushin-4778030.txt] status: 0, QTime: 11737, Done: 1/10, Remaining:0hours, 1minutes,45seconds.
[dokujo-tsushin-4778031.txt] status: 0, QTime: 460, Done: 2/10, Remaining:0hours, 0minutes, 3seconds.
[dokujo-tsushin-4782522.txt] status: 0, QTime: 533, Done: 3/10, Remaining:0hours, 0minutes, 3seconds.
[dokujo-tsushin-4788357.txt] status: 0, QTime: 433, Done: 4/10, Remaining:0hours, 0minutes, 2seconds.
[dokujo-tsushin-4788362.txt] status: 0, QTime: 405, Done: 5/10, Remaining:0hours, 0minutes, 2seconds.
[dokujo-tsushin-4788373.txt] status: 0, QTime: 537, Done: 6/10, Remaining:0hours, 0minutes, 2seconds.
[dokujo-tsushin-4788374.txt] status: 0, QTime: 571, Done: 7/10, Remaining:0hours, 0minutes, 1seconds.
[dokujo-tsushin-4788388.txt] status: 0, QTime: 501, Done: 8/10, Remaining:0hours, 0minutes, 1seconds.
[dokujo-tsushin-4791665.txt] status: 0, QTime: 408, Done: 9/10, Remaining:0hours, 0minutes, 0seconds.
[dokujo-tsushin-4796054.txt] status: 0, QTime: 445, Done: 10/10, Remaining:0hours, 0minutes, 0seconds.
---------------------------------------------------------------
[2024/12/07 14:24:10] 10 documents succeeded.
[2024/12/07 14:24:10] 0 documents failed.
---------------------------------------------------------------
[2024/12/07 14:24:10] Finished indexing of all 10 documents in 30 seconds.
-------------------------- Arguments --------------------------
JSON Data File : ./livedoor-10docs.json
Solr URL : https://mydomain.c.kandasearch.nl/solr
Solr Collection : mycore
---------------------------------------------------------------
[2024/12/07 14:13:27] Started indexing of 10 documents.
================================================ 1st indexing ================================================
[dokujo-tsushin-4778030.txt] status: 0, QTime: 1658, Done: 1/10, Remaining:0hours, 0minutes,14seconds.
[dokujo-tsushin-4778031.txt] status: 0, QTime: 584, Done: 2/10, Remaining:0hours, 0minutes, 4seconds.
[dokujo-tsushin-4782522.txt] status: 0, QTime: 511, Done: 3/10, Remaining:0hours, 0minutes, 3seconds.
[dokujo-tsushin-4788357.txt] status: 0, QTime: 575, Done: 4/10, Remaining:0hours, 0minutes, 3seconds.
[dokujo-tsushin-4788362.txt] status: 0, QTime: 501, Done: 5/10, Remaining:0hours, 0minutes, 2seconds.
[dokujo-tsushin-4788373.txt] status: 0, QTime: 686, Done: 6/10, Remaining:0hours, 0minutes, 2seconds.
[dokujo-tsushin-4788374.txt] status: 0, QTime: 464, Done: 7/10, Remaining:0hours, 0minutes, 1seconds.
[dokujo-tsushin-4788388.txt] status:500, QTime: 20045, Done: 8/10, Remaining:0hours, 0minutes,40seconds.
[dokujo-tsushin-4791665.txt] status: 0, QTime: 1218, Done: 9/10, Remaining:0hours, 0minutes, 1seconds.
[dokujo-tsushin-4796054.txt] status: 0, QTime: 455, Done: 10/10, Remaining:0hours, 0minutes, 0seconds.
---------------------------------------------------------------
[2024/12/07 14:14:08] 9 documents succeeded.
[2024/12/07 14:14:08] 1 documents failed.
---------------------------------------------------------------
================================================ 2nd indexing ================================================
[dokujo-tsushin-4788388.txt] status: 0, QTime: 511, Done: 1/10, Remaining:0hours, 0minutes, 4seconds.
---------------------------------------------------------------
[2024/12/07 14:14:10] 1 documents succeeded.
[2024/12/07 14:14:10] 0 documents failed.
---------------------------------------------------------------
[2024/12/07 14:14:10] Finished indexing of all 10 documents in 43 seconds.