LoginSignup
0
0

More than 3 years have passed since last update.

CentOS7でkuromoji検索

Posted at

kuromojiで検索

kuromojiで語を検索するまでの手順を解説します。

環境

virtualbox上のCentOS7
elasticsearch 6.8.13
kuromoji 6.8.13

セッティングファイル

まずセッティングファイルを作ります。名前はkuromoji_setting.jsonとします。 辞書ファイルはあらかじめ/etc/elasticsearchの下に用意して置くこと。ここではtest.dicが辞書ファイルとして登録されています

{
  "settings": {
    "analysis": {
      "tokenizer": {
        "custom_kuromoji": {
          "type": "kuromoji_tokenizer",
          "user_dictionary": "/etc/elasticsearch/test.dic"
        }
      },
      "analyzer": {
        "my_kuromoji_analyzer": {
          "type": "custom",
          "tokenizer": "custom_kuromoji",
          "filter": [
            "custom_synonym"
          ]
        }
      },
      "filter": {
        "custom_synonym": {
          "type": "synonym",
          "synonyms_path" : "/etc/elasticsearch/custom_synonyms.txt"
        }
      }
    }
  }
}

インデックスの作成

インデックスの名前はsampleとしてインデックスを作成します

curl -H "Content-Type: application/json" -X PUT 'http://localhost:9200/sample?pretty' -d @kuromoji_setting.json

データ登録

今回はデータを大量に登録してみましょう。
データを一件登録する場合は以下です。

 curl -H "Content-Type: application/json" -XPOST 'localhost:9200/sample/type/?pretty' -d '
{
   "name": “あいうえお”
 }'

複数のファイルを登録する場合は以下のphpを実行します。test.txtには登録したい語のリストが語ごとに改行されて列挙してあります。

<?php
$filename = 'test.txt';
$txt = file($filename);

foreach($txt as $value){
    $value2 = trim($value);

    $system_str = 'curl -H "Content-Type: application/json" -XPOST \'localhost:9200/sample/type/?pretty\' -d \'{"name":"'."$value2".'"}\'';
    $common = system($system_str);
}

検索

検索は以下のようなコマンドでできます。

curl -H "Content-Type: application/json" -XGET 'http://localhost:9200/sample/type/_search?pretty=true' -d '
{
  "query" : {
    "simple_query_string" : {
       "query": “あいうえお”
    }
  }
}
'

感想

以上のような簡単な操作でkuromojiの検索が実行できます。ぜひやってみてください

参考

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0