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 テーブル設計エラーの概要

目次間違い1: データの列が多すぎる誤解2: 共同クエリが多すぎる誤解3: ENUMの代わりにSET...

MySQL 5.7.16 ZIP パッケージのインストールと設定のチュートリアル

この記事では、MySQL 5.7.16 ZIPパッケージのインストールと設定のチュートリアルを参考ま...

CSS スクロールバースタイル変更コード

CSS スクロールバースタイル変更コード .scroll::-webkit-scrollbar { ...

ウェブサイト開発におけるフロントエンド開発者とアーティストの知識の違い

概要: 多くの企業、特にインターネット Web サイトを主な事業とする企業のほとんどが、「アーティス...

Alibaba Cloud に Docker をインストールする際の問題と解決策

質問Alibaba Cloud イメージを使用して Docker をインストールすると、次の図に示す...

Electronで不規則な形状の透明部分をクリックする実装

目次不規則なフォームの実装透明な部分をクリックする不規則なフォームの実装ここでは円形フォームを実装し...

WeChatアプレットはシンプルな計算機を実装する

WeChatアプレットの簡単な計算機は参考用です。具体的な内容は次のとおりです。 1. はじめに1....

MySQLクライアントとサーバーのプロトコルの解釈

目次MySQL クライアント/サーバー プロトコルMySQL サーバーから高いパフォーマンスを得る必...

ディスク容量不足による MySQL レプリケーション障害の解決方法

目次ケースシナリオ問題を解決するまとめケースシナリオ本日、オンラインで問題が発見されました。監視範囲...

HTML テーブル マークアップ チュートリアル (6): 暗い境界線の色属性 BORDERCOLORDARK

表では、右下の境界線の色を個別に定義したり、セルの左上の境界線の色を定義したりできます。これら 2 ...

Reactでwindow.print()を使用した際にページが応答しなくなる問題の解決記録について

目次1. 問題の背景: 2. 問題の原因: 3. 問題解決:要約: 1. 問題の背景: window...

シンプルなページカウントダウンを実現するJavaScript

この記事では、参考までに、シンプルなページカウントダウンを実装するためのJavaScriptの具体的...

CSS3ダイヤモンドパズルはdivのみを回転し、背景画像は回転しない機能を実現します

需要背景プロジェクトはVueを使用して作成され、ビジネス要件にはパズル効果があります。デフォルトの背...

MySQLデータベースで列を追加、削除、変更する方法

この記事では、例を使用して、MySQL データベースの列を追加、削除、および変更する方法について説明...

テーブルタグ(TAGS)の詳細な紹介

テーブルの基本構文<table>...</table> - テーブルを定義し...