SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

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

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

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

  • X ポスト
  • このエントリーをはてなブックマークに追加

 今回は、前回の記事を踏まえた上でElasticsearchを用いた日本語検索システムの作成方法をサンプルコードを交えて説明します。読者の方の環境でも試せるようにVagrantfileとDockerイメージを用意しているので、実際にお手元で動作を確認しながら読み進めることも可能です。

  • X ポスト
  • このエントリーをはてなブックマークに追加

 サンプルコードは、本文上部のリンクからダウンロードしてください。

対象読者

  • 現場の技術者で自社や自身のプロジェクトで検索システムを作成する必要のある方
  • 環境差異の少ない検索システムを作成したい方

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の環境が設定されている環境へアクセスできました。

会員登録無料すると、続きをお読みいただけます

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

次のページ
登録用文書のテンプレート設定

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
Elasticsearchと対話Botによる対話型の検索システム連載記事一覧

もっと読む

この記事の著者

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

WINGSプロジェクトについて>有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。2018年11月時点での登録メンバは55名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂きたい。著書記事多数。 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本格入門」「これからはじめるReact実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/9748 2016/10/31 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング