Solr クイック スタート: IK 中国語単語分割ツールの構成 (7)

0 まえがき

検索エンジンとして、solr は、検索速度と大量のデータに対する高い要件があるビジネス シナリオでよく使用されます。以前に英語の単語セグメンターを構成しましたが、中国語の単語セグメンテーションには柔軟性がなく実用的ではありません。実際の中国語の単語の分割、中国語のワード ブレーカーを別途インストールする必要もあります

solr のクイック スタート: solr の概要とインストール (1)
solr のクイック スタート: コア概念と solr-admin インターフェイスの概要 (2)
solr のクイック スタート: マネージド スキーマ タグの詳細な説明 (3)
solr のクイック スタート:コア/インデックス/コアの作成 (4)
Solr クイック スタート: mysql からのデータ同期の設定 (5)
Solr クイック スタート: mysql からの定期的な自動データ同期の実現 (6)

1. IK 中国語ワード ブレーカーの概要

IK 中国語ワード ブレーカーは、Java に基づいて開発されたオープンソースの軽量中国語ワード ブレーカーです。中国語で自然言語処理を実行でき、カスタムの単語分割をサポートします。IK ワード ブレーカー自体も、英語とデジタル単語の分割もサポートしています。ビジネスを満足させます。中国語と英語が混在するシナリオ。

なぜ中国語トークナイザーが必要なのでしょうか? solr 分析で単語の分割を実行できます。デフォルトの英語単語分割ツールを使用すると、中国語が個々の漢字に分割されていることがわかります。自然言語に従って、言語
に沿った 、 、 に分割することを好みます。同時に、単一の単語セグメントを使用せずにストレージスペースを節約できるため、より柔軟な中国語単語セグメンターが必要です中国man
ここに画像の説明を挿入

この種
ここに画像の説明を挿入

2.IKトークナイザーのインストール

1. ik tokenizer をダウンロードします。バージョンは solr のバージョンと一致しています。
ダウンロード アドレス: https://central.sonatype.com/artifact/com.github.magese/ik-analyzer/8.2.0

ここに画像の説明を挿入

このページでVersions、solr の対応するバージョンを選択し、クリックしてダウンロードBrowseを選択しますik-analyzer-8.2.0.jar

ここに画像の説明を挿入

2. jar パッケージを solr サーバーのディレクトリにアップロードするか、コマンドを直接使用してserver/solr-webapp/webapp/WEB-INF/libサーバーにダウンロードできます。wget

ここに画像の説明を挿入

3. 対応するコアmanaged-schema(またはschema.xml) 構成ファイルを変更し、新しいフィールド タイプを作成します。text_ik

<fieldType name="text_ik" class="solr.TextField">
           <analyzer type="index">
              <tokenizer class="org.wltea.analyzer.lucene.IKTokenizerFactory" useSmart="false" conf="ik.conf"/>
              <filter class="solr.LowerCaseFilterFactory"/>
           </analyzer>
           <analyzer type="query">
              <tokenizer class="org.wltea.analyzer.lucene.IKTokenizerFactory" useSmart="false" conf="ik.conf"/>
              <filter class="solr.LowerCaseFilterFactory"/>
           </analyzer>
        </fieldType>

4. 同時に、変更が必要なフィールドのトークナイザーを調整します。たとえば、ここではremarksフィールドを中国語のトークナイザーに変更します。

<field name="remarks" type="text_ik" indexed="true" stored="true" required="true" multiValued="false" />

ここに画像の説明を挿入

5.solrを再起動します

service solr stop
service solr start

ここで、私のsolrは起動時に自動起動するように設定されており、サービスが追加されているため、サービス管理から直接起動および停止できます。設定されていない場合は、solr自体の起動および停止コマンドを使用します

./bin/solr stop -all
./bin/solr start -force

6. 単語分割効果を確認する

もう一度単語分割を実行し、今度は中国語単語分割ツールを選択して、単語分割効果を確認します。今回は単語分割が前の単一の単語ではなくフレーズになり、その後のマッチング効果が向上していることがわかります。

ここに画像の説明を挿入

同時に、remarksフィールドは IK トークナイザーで構成されているため、このフィールドを直接使用して単語セグメンテーション効果をテストします。

ここに画像の説明を挿入

中国語トークナイザーを構成した後、履歴データが対応する効果を達成しなかった

トークナイザーを変更した後、コメントを使用してクエリを実行したところ、データは存在するにもかかわらずクエリが見つからないことがわかりました。

ここに画像の説明を挿入

上記の単語分割テストを行ったところ、「配送」はクエリできるはずですが、一致しませんでした。原因は何でしょうか?

これは、履歴データが以前の単語セグメンテーション構成に従って単語セグメンテーション ライブラリをすでに作成しているためです。単語セグメンタを変更しても、履歴データで単語セグメンテーションを再作成することはできません。これを実現するには、インデックス データを再ロードする必要があります。

(1) 過去のインデックスデータを削除する

ここに画像の説明を挿入
(2) インデックスを再読み込み
ここに画像の説明を挿入
(3) solr を再起動

(4) 逆輸入、つまりfull-import使用

ここに画像の説明を挿入
(5) 再度クエリを実行し、データが正常にクエリできることを確認します。

ここに画像の説明を挿入

3. まとめ

ここまでで、IK 中国語トークナイザーの簡単な使い方は終わりました。実際、使い方は難しくありません。難しいのは、複雑なビジネス シナリオにおけるさまざまなパフォーマンス要件ですが、「クイック スタート」で必要なものはこれらではありません。コラム なじみのない知識に対して、皆さんが好奇心を持ち続け、恐怖を軽減してくれることを願っています。使用シナリオのほとんどは実際には単純ですが、同時に、私たちは慣れ親しんだ知識に対して畏敬の念を持ち続け、決して傲慢になってはなりません。

同じ文ですが、自分で試してみてください。

おすすめ

転載: blog.csdn.net/qq_24950043/article/details/131140819