Elasticsearchを用いた日本語検索システムの実装
Elasticsearchと対話Botによる対話型の検索システム 第2回
ダウンロード サンプルファイル (45.2 KB)
今回は、前回の記事を踏まえた上でElasticsearchを用いた日本語検索システムの作成方法をサンプルコードを交えて説明します。読者の方の環境でも試せるようにVagrantfileとDockerイメージを用意しているので、実際にお手元で動作を確認しながら読み進めることも可能です。
サンプルコードは、本文上部のリンクからダウンロードしてください。
対象読者
- 現場の技術者で自社や自身のプロジェクトで検索システムを作成する必要のある方
- 環境差異の少ない検索システムを作成したい方
Elasticsearchの起動
仮想環境の設定
今回は仮想環境の設定にVagrantを使用します。VagrantはWindowsやMacの環境でもLinuxの環境などを再現できるツールです。こちらを使用して今回はUbuntu Trusty 14.04(LTS)の環境を再現します。
[1]Vagrantを起動する
"Vagrantfile"のipアドレスを環境に応じて設定してください。他にVagrantを使用している場合は 同一のipアドレスにならないようにしてください。
例:192.168.33.21
config.vm.network "private_network", ip: {your ip address}
"Vagrantfile"でメモリの大きさを設定しています。1024MB以下のマシンでは起動できません。
config.vm.provider "virtualbox" do |vm| vm.memory = 1024 vm.cpus = 4 end
取得したコードのディレクトリに移動し、下記でVagrantを起動してください。
vagrant up
下記でVagrantで作成した環境に入ってください。
vagrant ssh
[2]Docker環境の構築
今回、作成したUbuntu Trusty 14.04(LTS)でのDocker環境の構築方法です。今回インストールするDockerのバージョンは1.11.2になります。
下記で必要なライブラリをインストールしてください。
sudo apt-get update
sudo apt-get install -y apt-transport-https ca-certificates
sudo apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80
--recv-keys 58118E89F3A912897C070ADBF76221572C52609D
- 「apt-transport-https」:httpsの導入を行っています。
- 「ca-certificates」:SSL接続の認証に必要なパッケージです。
- 「apt-key adv」:公開鍵をkeyサーバーから取得しています。
- 「--keyserver」:どのサーバーから公開鍵を取得するか指定しています。
- 「--recv-keys」:どのような公開鍵を取得するか指定します。
[3]Dockerをインストールするための準備
下記のファイルに追記してDockerのパッケージがインストールできるように設定します。
sudo vi /etc/apt/sources.list.d/docker.list
追記内容は下記です。
deb https://apt.dockerproject.org/repo ubuntu-trusty main
[4]Dockerのインストール
Dockerのインストール作業です。
sudo apt-get update sudo apt-get purge lxc-docker apt-cache policy docker-engine sudo apt-get update sudo apt-get install -y linux-image-extra-$(uname -r) sudo apt-get update sudo apt-get install -y docker-engine sudo service docker start
- 「apt-get update」:先ほど更新したdocker.listが反映されるようにします。
- 「apt-get purge lxc-docker」:古いパッケージを削除します。
- 「apt-cache policy docker-engine」:今回インストールしたいDockerのバージョンであるかを確認します。
-
「apt-get install linux-image-extra-$(uname -r)"」:AUFSストレージ・ドライバと言われるものが適用できるようにします。これが適用できると下記の利点があります。
- コンテナ起動時間の高速化
- ストレージの効率的な利用
- メモリの効率的な利用
- 「apt-get install docker-engine」:Dockerをインストールします。
- 「service docker start」:Dockerを起動します。
[5]Dockerのユーザー設定
Dockerを一般ユーザーでも使用できるように設定します。再起動処理をしないと"usrmod"が反映されないので再起動処理も行なっています。
sudo groupadd docker sudo usermod -aG docker $USER exit vagrant reload vagrant ssh
今回の記事の環境が用意されているDockerイメージを下記のコマンドで取得します。
[6]DockerコンテナImageの取得
docker pull masayaresearch/elasticsearch_japanese:latest
下記のコマンドでDockerイメージの情報を取得できます。
docker images
下記のような情報が取得できるので"IMAGE ID"をメモしてください。
REPOSITORY TAG IMAGE ID CREATED SIZE masayaresearch/elasticsearch_japanese latest 読者の環境に依存 読者の環境に依存 7.039GB
[7]Elasticsearchの動作環境
実際に動作させるにはコンテナに入る必要があります。Dockerコンテナに入るコマンドは下記です。
docker run -it {先ほどメモしたIMAGE ID} bash
これでElasticsearchの環境が設定されている環境へアクセスできました。
この記事は参考になりましたか?
- Elasticsearchと対話Botによる対話型の検索システム連載記事一覧
- この記事の著者
-
WINGSプロジェクト 大串 正矢(オオグシ マサヤ)
<WINGSプロジェクトについて>有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。 2026年時点での登録メンバは約50名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂きたい。著書、記事多数。 RSS X: @WingsPro_info(公式)、@WingsPro_info/wings(メンバーリスト) Facebook
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
-
山田 祥寛(ヤマダ ヨシヒロ)
静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト」代表。主な著書に「独習シリーズ(Java・C#・Python・PHP・Ruby・JSP&サーブレットなど)」「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravelなど)」「改訂3版JavaScript本格入門」「これからはじめるLaravel実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数。
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
この記事は参考になりましたか?
この記事をシェア
