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 テーブルがロックされているかどうかを照会する方法

推薦する

VMware vSphere 6.7 (ESXI 6.7) のグラフィック インストール手順

環境: VMware VCSA 6.7 (VMware-VCSA-all-6.7.0-8169922...

Vueは大画面ページのスクリーン適応を実現します

この記事では、大画面ページのスクリーンアダプテーションを実現するためのVueの具体的なコードを参考ま...

MySQLクエリのパフォーマンスに影響を与える大きなオフセットの理由と最適化の詳細な説明

序文MySQL クエリは select コマンドを使用し、limit および offset パラメー...

Docker で MySQL を起動したときに SQL 文を自動的に実行する方法

Docker で MySQL コンテナを作成する場合、コンテナの起動後にデータベースとテーブルが自動...

JDKネイティブスレッドプールのバグを修正するTomcatの実装原理

処理能力と同時実行性を向上させるために、Web コンテナは通常、リクエストを処理するタスクをスレッド...

ミニマルなウェブサイトデザインの例

Web アプリケーション クラス1. みんなのためにダウンまたは私だけのためにこのウェブサイトは、ウ...

Linux で NFS ファイル共有サーバーを構築するための詳細な手順

Linux が NFS サーバーを構築異なるオペレーティング システム間でデータを共有するために、通...

MySQL EXPLAIN出力列の詳細な説明

1. はじめにEXPLAIN ステートメントは、MySQL がステートメントを実行する方法に関する情...

ブラウザが登録できるイベントの概要

HTML イベント リスト一般イベント: onClick HTML: マウスクリックイベント。主にオ...

VueはCanvasを使用してランダムなサイズで重なり合わない円を生成します

目次キャンバス関連文書エフェクト画像表示ケースの完全なコード親コンポーネントコードサブコンポーネント...

MySQLは間違ったパスワードを入力する試行回数を制御します

1. 本番環境でMySQLのデッドロックを監視し、デッドロックの可能性を減らす方法まず、デッドロック...

Vueはチャットインターフェースを実装する

この記事の例では、チャットインターフェースの表示を実現するためのVueの具体的なコードを参考までに共...

高可用性 Web クラスターを実装するための Keepalived+Nginx+Tomcat サンプル コード

高可用性 Web クラスターを実現する Keepalived+Nginx+Tomcat 1. Ngi...

無効にしてHTMLフォーム入力を送信した後にフォーム値が取得されない問題を解決する方法

フォーム入力ボックスの入力をdisable属性に設定して送信すると、入力ボックスの値を取得できなくな...

CentOS8.0ネットワーク設定の実装

1. CentOS 7 と CentOS 8 のネットワーク構成の違い: VMware Workst...