ユーザ用ツール

サイト用ツール


elasticsearch

差分

このページの2つのバージョン間の差分を表示します。

この比較画面へのリンク

次のリビジョン
前のリビジョン
elasticsearch [2017/10/24 08:33] – 作成 nullponelasticsearch [2021/09/29 10:15] (現在) – [valueの最大値を取得] nullpon
行 11: 行 11:
 </code> </code>
  
-===== 日本語形態素解析エンジンkuromoriを使う =====+===== コマンド ===== 
 + 
 +httpリクエストを投げて操作するのでcurlなどを使うと良い 
 + 
 +==== インデックス(RDBで言うテーブル)一覧 ==== 
 + 
 +  curl 'http://localhost:9200/_cat/indices?v' 
 + 
 + 
 +==== 適当に1件取得 ==== 
 + 
 +  curl 'http://localhost:9200/<インデックス名>/_search?pretty&size=1' 
 + 
 +prettyはjsonをニンゲンが見やすくフォーマットする指定。 
 + 
 +==== id指定取得 ==== 
 + 
 +  curl 'http://localhost:9200/<インデックス名>/_doc/<_id>?pretty' 
 + 
 +==== valueの最大値を取得 ==== 
 + 
 +  curl -XPOST -H 'Content-type: application/json' -d '{ "aggs": { "max_value": { "max": { "field": "value" } } } }' 'http://localhost:9200/<インデックス名>/_search?size=0' 
 + 
 + 
 +==== フィールドの存在有無検索 ==== 
 + 
 + 
 +  curl -XPOST -H 'Content-type: application/json' -d '{ "query": { "exists": { "field": "field_name" } } }' 'http://localhost:9200/<インデックス名>/_search?pretty&size=1' 
 + 
 +==== 範囲検索 ==== 
 + 
 +  curl -XPOST -H 'Content-type: application/json' -d '{ "query": { "range": { "date": { "gt": "2020-01-01T00:00:00+09:00" } } } }' 'http://localhost:9200/<インデックス名>/_search?pretty&size=1' 
 + 
 + 
 +==== and条件検索 ==== 
 + 
 +<code> 
 +curl -XPOST -H 'Content-type: application/json' -d '{  
 +  "query": {  
 +    "bool": {  
 +      "must":
 +         { "range": { "date": { "gt": "2020-01-01T00:00:00+09:00" } } },  
 +         { "exists": { "field": "field_bame" } }  
 +      ] 
 +    }  
 +  }  
 +}' 'http://localhost:9200/<インデックス名>/_search?pretty&size=1' 
 +</code> 
 +===== 日本語形態素解析エンジンkuromojiを使う ===== 
 + 
 +日本語のような分かち書きされない言語を全文検索するには、ngramや形態素解析での前処理が必要。
  
   * [[https://www.atilika.com/ja/products/kuromoji.html|kuromoji]]   * [[https://www.atilika.com/ja/products/kuromoji.html|kuromoji]]
   * [[https://www.elastic.co/guide/en/elasticsearch/plugins/current/analysis-kuromoji-tokenizer.html|kuromoji tokenizer]]   * [[https://www.elastic.co/guide/en/elasticsearch/plugins/current/analysis-kuromoji-tokenizer.html|kuromoji tokenizer]]
- 
 ==== インストール ==== ==== インストール ====
  
行 75: 行 124:
  
 ==== ユーザ辞書を使う ==== ==== ユーザ辞書を使う ====
 +
 +形態素解析の欠点は、エンジンが知らない謎の単語に対応できないこと。謎単語はユーザ辞書を追加することで対処可能。
  
 辞書なしの場合 辞書なしの場合
行 144: 行 195:
 } }
 </code> </code>
 +
 +===== エイリアス =====
 +
 +インデックスに別名を付ける機能、インデックス名の代わりにエイリアス名を指定して検索ができる
 +
 +一覧
 +
 +<code>
 +$ curl http://localhost:9200/_cat/aliases?v
 +</code>
 +
 +
 +エイリアス作成
 +
 +<code>
 +$ curl -X POST -H 'Content-Type: application/json' -d '{ "actions" : [ { "remove" : { "index" : "hoge_old", "alias" : "hoge" } },{ "add" : { "index" : "hoge_new", "alias" : "hoge" } } ] }' http://localhost:9200/_aliases
 +</code>
 +
 +エイリアス削除
 +<code>
 +curl -X POST -H 'Content-Type: application/json' -d '{ "actions" : [ { "remove" : { "index" : "hoge_old", "alias" : "hoge" } } } ] }' http://localhost:9200/_aliases
 +</code>
 +
 +別のインデックスに変更
 +<code>
 +curl -X POST -H 'Content-Type: application/json' -d '{ "actions" : [ { "remove" : { "index" : "hoge_old", "alias" : "hoge" } },{ "add" : { "index" : "hoge_new", "alias" : "hoge" } } ] }' http://localhost:9200/_aliases
 +</code>
 +
  
elasticsearch.1508834014.txt.gz · 最終更新: 2017/10/24 08:33 by nullpon