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