Kumihimo(組紐)

Kumihimoは、WordPressの標準の検索を全文検索エンジンのElasticsearchを利用した検索に置き換えるプラグインです。Kumihimoは、Fantastic ElasticSearchプラグインをベースにしており、Fantastic ElasticSearchに対して以下のような変更を加えています。

  1. 検索タイプとして"matchクエリー”を選択可能にする。
  2. カスタムフィールドをデフォルトでは全文検索の対象としない。
  3. Elastica(PHP client for elasticsearch)からPHP7では許されないクラス名を定義しているBool.php, Null.phpの削除

Kumihimoの利用手順は以下のようになります。ここでは、形態素解析器にKuromojiを使用し、Elasticsearchの検索タイプとしてmatchクエリーを指定した場合の例を説明します。

1. Elasticsearchサーバーのセットアップ

まず、Elasticsearchサーバーをセットアップします。Elasticsearchのセットアップ手順については、他にも色々紹介しているページがありますので、ここでは割愛します。

2. ユーザー辞書の作成

Kurumojiは辞書としてIPADIC(IPA辞書)を使っています。IPADICだけでもかなり用は足りるのですが、IPADICには新しい単語や専門用語は収載されていないので、ユーザー辞書を作成します。Kuromojiのユーザー辞書はCSVファイルでフォーマットは、以下のようになります。

単語,形態素解析後の単語,読み,品詞

具体的にはこんな感じです。

胃食道逆流症,胃食道逆流症,イショクドウギャクリュウショウ,名詞
異所性妊娠,異所性妊娠,イショセイニンシン,名詞
イソジン,イソジン,イソジン,名詞

3. 類語辞書の作成

類語辞書も作成します。類語辞書はCSVファイルでフォーマットは以下のようになります。

単語,単語,単語,単語

具体的にはこんな感じです。

hiv,ヒト免疫不全ウイルス,hiv感染症,後天性免疫不全症候群,aids
mers,中東呼吸器症候群
rsウイルス,rsウイルス感染症

4. ユーザー辞書と類語辞書の指定

ユーザー辞書と類語辞書を、elasticsearch.ymlファイルで指定します。具体的にはこんな感じです。

index:
    analysis:
        tokenizer:
          ishamachi_tokenizer:
            type: kuromoji_tokenizer
            mode: search
            user_dictionary: ishamachi_dic.csv
        filter:
          ishamachi_synonym:
            type: synonym
            synonyms_path: ishamachi_synonym.csv
        analyzer:
            default:
                type: custom
                tokenizer: ishamachi_tokenizer
                filter: [
                  kuromoji_part_of_speech,
                  kuromoji_stemmer,
                  lowercase,
                  cjk_width,
                  ishamachi_synonym
                ]

5. Kumihimoプラグインのインストール

WordPressのプラグインの新規追加画面からKumihimoプラグインをインストールします。キーワード入力欄にkumihimoと入力して検索します。

Kumihimoプラグインのインストール

6. Kumihomoプラグインの設定

Enable Searchにチェックを入れると、WordPressの標準検索がElasticsearchを使った検索に入れ替えられます。チェックを外せば、WordPressの標準の検索に戻ります。

Enable Match Queryにチェックを入れると、検索タイプとしてmatchクエリーが採用されます。

WordPress Integration

Server URLを指定します。

Index Nameを指定します。

Server Settings

全文検索の対象としたいフィールドにチェックを入れます。

Content Indexing

初回や、全文検索のインデックスを再作成したい場合には、Re-index Dataボタンをクリックします。

新たな投稿については自動的に全文検索のインデックスに追加されます。

Manage Index

以上