Shoeisha Technology Media

CodeZine(コードジン)

特集ページ一覧

Elasticsearchを用いた日本語検索システムの実装

Elasticsearchと対話Botによる対話型の検索システム 第2回

  • LINEで送る
  • このエントリーをはてなブックマークに追加
2016/10/31 14:00

 今回は、前回の記事を踏まえた上で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の環境が設定されている環境へアクセスできました。


  • LINEで送る
  • このエントリーをはてなブックマークに追加

著者プロフィール

  • WINGSプロジェクト 大串 正矢(オオグシ マサヤ)

    <WINGSプロジェクトについて> 有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。2018年11月時点での登録メンバは55名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂...

  • 山田 祥寛(ヤマダ ヨシヒロ)

    静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for ASP/ASP.NET。執筆コミュニティ「WINGSプロジェクト」代表。 主な著書に「入門シリーズ(サーバサイドAjax/XMLD...

バックナンバー

連載:Elasticsearchと対話Botによる対話型の検索システム
All contents copyright © 2005-2018 Shoeisha Co., Ltd. All rights reserved. ver.1.5