Docker に Solr 8.6.2 をインストールし、中国語の単語セグメンターを構成する方法

Docker に Solr 8.6.2 をインストールし、中国語の単語セグメンターを構成する方法

1. 環境バージョン

Docker バージョン 19.03.12

セントロス7

ソル8.6.2

2. Dockerのインストール

1. 公式インストールスクリプトを使用して自動的にインストールする

curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

2. 国内のdaocloudワンクリックインストールコマンドを使用します。

curl -sSL https://get.daocloud.io/docker | sh

3. dockerにsolr8.6.2をインストールする 1. dockerにsolrをプルする

docker プル solr

2. Solrコンテナを作成して有効化する

docker run --name blog-solr -d -p 8983:8983 solr // blog-solr は自分で名前を付けることができます

// パラメータの詳細

コンテナを実行する
-d バックグラウンドで実行
-p コンテナポートとホストポートのマッピング – name コンテナ名
blog-solrは画像名を参照します

3. コアを作成する

docker exec -it --user=solr blog-solr bin/solr create_core -c Ik_core 

ここに画像の説明を挿入

「新しいコア「Ik_core」が作成されました」というメッセージが表示されます。これは、

4. ブラウザアクセス

私のサーバーにアクセスするには、ブラウザに IP:8983 と入力してください。

ここに画像の説明を挿入

5. Solrが中国語の単語セグメンテーションを構成する 5.2 Ikファイルをダウンロードする

リンク: https://pan.baidu.com/s/1pkI9ZCThkDdzj4MWg3MO9A 抽出コード: pgv8

 // 創建創建個目錄將解壓的文件放在這里mkdir /mnt/Ik/

ここに画像の説明を挿入

5.2 設定ファイルをコピーする

docker cp ik-analyzer-8.3.0.jar blog-solr:/opt/solr-8.6.2/server/solr-webapp/webapp/WEB-INF/lib/
docker cp ik-analyzer-solr7-7.x.jar blog-solr:/opt/solr-8.6.2/server/solr-webapp/webapp/WEB-INF/lib/
docker cp solr-dataimporthandler-8.4.0.jar blog-solr:/opt/solr-8.6.2/server/solr-webapp/webapp/WEB-INF/lib/
docker cp solr-dataimporthandler-extras-8.4.0.jar blog-solr:/opt/solr-8.6.2/server/solr-webapp/webapp/WEB-INF/lib/

Solrコンテナに入り、フォルダを作成する

docker exec -it --user=root blog-solr /bin/bash
cd /opt/solr-8.6.2/server/solr-webapp/webapp/WEB-INF
mkdir クラス
出口
docker cp IKAnalyzer.cfg.xml blog-solr:/opt/solr-8.6.2/server/solr-webapp/webapp/WEB-INF/classes/

5.3 IKAnalyzer.cfg.xml

<?xml バージョン="1.0" エンコーディング="UTF-8"?>
<!DOCTYPE プロパティ SYSTEM "http://java.sun.com/dtd/properties.dtd">

<プロパティ>
	<comment>IK Analyzer 拡張構成</comment>
		<!--ユーザーはここで独自の拡張辞書を設定できます-->
	<entry key="ext_dict">ext.dic;</entry>
		<!--ユーザーはここで独自の拡張ストップワード辞書を設定できます-->
	<entry key="ext_stopwords">ストップワード.dic;</entry>
</プロパティ>

5.4 マネージドスキーマの変更

docker exec -it --user=root blog-solr /bin/bash
cp /opt/solr-8.6.2/contrib/analysis-extras/lucene-libs/lucene-analyzers-smartcn-8.6.2.jar /opt/solr-8.6.2/server/solr-webapp/webapp/WEB-INF/lib/
cd /var/solr/data/Ik_core/conf
vim 管理スキーマ

vimをお持ちでない場合は、viを使用するか、apt-get install vimを使用してインストールできます。

一番下に追加:

<!-- ik 単語セグメンター -->
 <fieldType 名="text_ik" クラス="solr.TextField">
	 <アナライザータイプ="インデックス">
		 <トークナイザークラス="org.wltea.analyzer.lucene.IKTokenizerFactory" useSmart="false" conf="ik.conf"/>
		 <フィルタークラス="solr.LowerCaseFilterFactory"/>
	 </アナライザー>
	 <アナライザータイプ="クエリ">
		 <トークナイザークラス="org.wltea.analyzer.lucene.IKTokenizerFactory" useSmart="true" conf="ik.conf"/>
		 <フィルタークラス="solr.LowerCaseFilterFactory"/>
	 </アナライザー>
 </フィールドタイプ>

 <fieldType name="text_cn" class="solr.TextField" positionIncrementGap="100">
	 <アナライザータイプ="インデックス">
		 <トークナイザークラス="org.apache.lucene.analysis.cn.smart.HMMChineseTokenizerFactory"/>
	 </アナライザー>
	 <アナライザータイプ="クエリ">
		 <トークナイザークラス="org.apache.lucene.analysis.cn.smart.HMMChineseTokenizerFactory"/>
	 </アナライザー>
 </フィールドタイプ> 

ここに画像の説明を挿入

5.5 solrconfig.xmlを変更する

一番下に追加

<リクエスト ハンドラー名="/dataimport" クラス="org.apache.solr.handler.dataimport.DataImportHandler"> 
 <lst name="デフォルト">
  <str name="config">db-data-config.xml</str> 
 </lst> 
</リクエストハンドラ> 

ここに画像の説明を挿入

Solrを再起動する

出口
docker 再起動 ブログ-solr

4. テスト

1. 単語セグメンターが正しく設定されているか確認する

ここに画像の説明を挿入

2. 単語分割器が正常に単語を分割できるかどうかをテストする

ここに画像の説明を挿入

3. 検索機能をテストする

ここに画像の説明を挿入

これで、Docker に Solr 8.6.2 をインストールして中国語単語セグメンテーションを構成する方法についての記事は終了です。Docker で中国語単語セグメンテーションを構成する方法の詳細については、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • Javaは単純な単語分割機能を実装する
  • Docker で Elasticsearch Kibana と ik Word Segender をデプロイする詳細な説明
  • Dockerコンテナ内にkibanaトークナイザーをインストールする方法
  • elasticsearch-analysis-ik 中国語単語セグメンテーションのインストール方法
  • Solrは特殊文字を使用してカスタム単語セグメンテーションを実装します
  • iOS で強力な中国語単語セグメンテーションを実装する方法
  • JAVA StringBuffer クラスと StringTokenizer クラスのコード分析
  • Java の StringTokenizer クラスの詳細な説明 (推奨)
  • Tokenizerについての簡単な説明

<<:  Linux におけるドライバモジュールのパラメータ転送プロセスの分析

>>:  MySQL テーブルがロックされているかどうかを照会する方法

推薦する

MySQL 5.7.23 winx64 のインストールと設定方法のグラフィックチュートリアル (win10 の場合)

この記事はMySQL 5.7.23 winx64のインストールチュートリアルを記録します。具体的な内...

SQLクエリの実行順序をゼロから学ぶ

SQL クエリ ステートメントの実行順序は次のとおりです。 (7)選択 (8) DISTINCT &...

jQueryは広告の表示と非表示のアニメーションを実装します

数秒後に広告が表示されて消えることがよくあります。この機能を実装するには、JQuery フレームワー...

HTML メタビューポート属性の説明

ビューポートとはモバイル ブラウザは、Web ページを仮想の「ウィンドウ」(ビューポート) に配置し...

MySQLからHiveにさらにデータをインポートするためのソリューション

元の派生コマンド: bin/sqoop インポート -connect jdbc:mysql://19...

ubuntu18.04 での qt5.12.8 のインストールと環境設定に関する詳細なチュートリアル

環境システム: Ubuntu 18.04ソフトウェア: qt5.12.8 1. インストールパッケー...

入力タイプの制限(複数の方法)

1. 入力・貼り付けできるのは中国語のみ<input onkeyup="value=...

Windows での MySQL 8.0.15 のインストールと設定方法のグラフィック チュートリアル

この記事では、参考までにMySQL 8.0.15のインストールと設定方法のグラフィックチュートリアル...

Hyper-V の紹介とインストールと使用 (詳細な図解)

はじめに:IT 業界の巨人である Microsoft 独自の仮想化技術は、VMware や Citr...

MySQLとOracleの違いのまとめ(機能性能の比較、選択、使用時のSQLなど)

1. 同時実行性同時実行性は OLTP データベースの最も重要な機能ですが、同時実行性にはリソース...

Docker ロード後にイメージ名が none になる問題の解決方法

最近、docker load -i コマンドを使用してイメージ パッケージを圧縮した後、イメージ名と...

IE で ClearType をオンにした後の透明フォントの問題の解決方法

IE で ClearType をオンにした後に発生する透明フォントの問題を解決するには、透明要素に背...

MySQLエラー10061を解決する方法

この記事では、「'localhost' (10061) の MySQL サーバーに接...