Crowiで検索を有効化する(CentOS 6.8)

# Crowiで検索を有効化する
Crowiシリーズの３本目である。

1. [Crowiをセットアップする(CentOS 6.8)](http://qiita.com/oshuya/items/bd12cd40d4ba49c3f00b)
1. [CrowiでGoogleAppsでのログインを有効化する](http://qiita.com/oshuya/items/5b8a5cebd2600b8f4348)

version1.5.0から実装された検索機能を使用する。

# 環境
- CentOS 6.8
- Java 1.7 (1.6で動かそうとして失敗した)
- Crowi v1.5.0

## Elasticsearchを導入する
検索機能を使用するにはElasticserachが必要だそうなのでこれを導入する。 

### レポジトリの設定
1. yumレポジトリの設定
```$ rpm --import https://packages.elastic.co/GPG-KEY-elasticsearch```

1. レポジトリの設定を書き換える

```:/etc/yum.repos.d/elasticsearch.repo
[elasticsearch-2.x]
name=Elasticsearch repository for 2.x packages
baseurl=http://packages.elastic.co/elasticsearch/2.x/centos
gpgcheck=1
gpgkey=http://packages.elastic.co/GPG-KEY-elasticsearch
enabled=1
```

- イントール
```$ yum install elasticsearch``` 

- 日本語対応するためにanalysis-kuromojiをいれる **ここでつまる**

```
$ cd /usr/share/elasticsearch
$ bin/plugin install analysis-kuromoji
```

- javaが1.7以上じゃないと動かない[らしい](https://github.com/elastic/elasticsearch/issues/10259)
```$ yum install java-1.7.0-openjdk```

- もっかいkuromojiをいれる
```$ bin/plugin install analysis-kuromoji```

- Elasticsearchを再起動
```$ /etc/init.d/elasticsearch start```

- 自動起動を設定する
```$ chkconfig --add elasticsearch```

- 設定を変更する
/etc/elasticsearch/elasticsearch.ymlを書き換える  

```:/etc/elasticsearch/elasticsearch.yml
 # network.host: 192.168.0.1
network.host: YOURIP
```

- 書き換えたらリスタートを忘れずに
```$ /etc/init.d/elasticsearch restart```


- Elasticsearchとkuromojiの動作確認をする
Elasticsearch

```:Elasticsearch
$ curl 'http://YOURIP:9200/'      
{
  "name" : "Gosamyr",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "RT6I6Z3JSliJ_UZdSkvcnQ",
  "version" : {
    "number" : "2.4.1",
    "build_hash" : "c67dc32e24162035d18d6fe1e952c4cbcbe79d16",
    "build_timestamp" : "2016-09-27T18:57:55Z",
    "build_snapshot" : false,
    "lucene_version" : "5.5.2"
  },
  "tagline" : "You Know, for Search"
}
```

kuromoji

```:kuromoji
 $ curl -X GET 'http://YOURIP:9200/_nodes/plugins?pretty'
{
  "cluster_name" : "elasticsearch",
  "nodes" : {
    "q7PccHeCTLGVDhJ5Pd34Gg" : {
      "name" : "Gosamyr",
      "transport_address" : "160.16.125.226:9300",
      "host" : "160.16.125.226",
      "ip" : "160.16.125.226",
      "version" : "2.4.1",
      "build" : "c67dc32",
      "http_address" : "160.16.125.226:9200",
      "plugins" : [ {
        "name" : "analysis-kuromoji",
        "version" : "2.4.1",
        "description" : "The Japanese (kuromoji) Analysis plugin integrates Lucene kuromoji analysis module into elasticsearch.",
        "jvm" : true,
        "classname" : "org.elasticsearch.plugin.analysis.kuromoji.AnalysisKuromojiPlugin",
        "isolated" : true,
        "site" : false
      } ],
      "modules" : [ {
        "name" : "lang-expression",
        "version" : "2.4.1",
        "description" : "Lucene expressions integration for Elasticsearch",
        "jvm" : true,
        "classname" : "org.elasticsearch.script.expression.ExpressionPlugin",
        "isolated" : true,
        "site" : false
      }, {
        "name" : "lang-groovy",
        "version" : "2.4.1",
        "description" : "Groovy scripting integration for Elasticsearch",
        "jvm" : true,
        "classname" : "org.elasticsearch.script.groovy.GroovyPlugin",
        "isolated" : true,
        "site" : false
      }, {
        "name" : "reindex",
        "version" : "2.4.1",
        "description" : "_reindex and _update_by_query APIs",
        "jvm" : true,
        "classname" : "org.elasticsearch.index.reindex.ReindexPlugin",
        "isolated" : true,
        "site" : false
      } ]
    }
  }
}
```


- crowi側で読ませる

```:/etc/sysconfig/crowi 
ELASTICSEARCH_URI=http://YOURIP:9200
```

## Crowi側の設定
秒でおわる
1. ```forever start app.js```
2. CrowiのGUIから"管理" -> "検索管理" -> "Build Now"

**完成** 
<img width="577" alt="スクリーンショット 2016-10-31 18.25.22.png" src="https://qiita-image-store.s3.amazonaws.com/0/114861/563e3e4e-b1a5-9d2d-f651-df898ad95baa.png">



# 参考
[Elasticsearch を yumでインストール (CentOS)](http://qiita.com/inouet/items/6276c5a08c4fe5eecdb5)
[Crowi v1.5.0 にアップデートしてみた](http://www.kunitake.org/chalow/2016-09-06-1.html)