Your SlideShare is downloading. ×
0
Elasticsearchのサジェスト機能を使った話
Elasticsearchのサジェスト機能を使った話
Elasticsearchのサジェスト機能を使った話
Elasticsearchのサジェスト機能を使った話
Elasticsearchのサジェスト機能を使った話
Elasticsearchのサジェスト機能を使った話
Elasticsearchのサジェスト機能を使った話
Elasticsearchのサジェスト機能を使った話
Elasticsearchのサジェスト機能を使った話
Elasticsearchのサジェスト機能を使った話
Elasticsearchのサジェスト機能を使った話
Elasticsearchのサジェスト機能を使った話
Elasticsearchのサジェスト機能を使った話
Elasticsearchのサジェスト機能を使った話
Elasticsearchのサジェスト機能を使った話
Elasticsearchのサジェスト機能を使った話
Elasticsearchのサジェスト機能を使った話
Elasticsearchのサジェスト機能を使った話
Elasticsearchのサジェスト機能を使った話
Elasticsearchのサジェスト機能を使った話
Elasticsearchのサジェスト機能を使った話
Elasticsearchのサジェスト機能を使った話
Elasticsearchのサジェスト機能を使った話
Elasticsearchのサジェスト機能を使った話
Elasticsearchのサジェスト機能を使った話
Elasticsearchのサジェスト機能を使った話
Elasticsearchのサジェスト機能を使った話
Elasticsearchのサジェスト機能を使った話
Elasticsearchのサジェスト機能を使った話
Elasticsearchのサジェスト機能を使った話
Elasticsearchのサジェスト機能を使った話
Elasticsearchのサジェスト機能を使った話
Elasticsearchのサジェスト機能を使った話
Elasticsearchのサジェスト機能を使った話
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Elasticsearchのサジェスト機能を使った話

174

Published on

第10回Elasticsearch勉強会のLT資料になります. …

第10回Elasticsearch勉強会のLT資料になります.
「Elasticsearchのサジェスト機能を使った話」

Published in: Software
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
174
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Elasticsearchの
 サジェスト機能を使った話 株式会社アイスタイル
 渡邊 紘太朗(@ktaro_w) 第10回 Elasticsearch勉強会 LT
 2015/06/011
  • 2. 自己紹介 • 渡邊 紘太朗 • 株式会社アイスタイル • 2014年度入社(2年目) • アーキテクチャチーム • Elasticsearch歴 • 3ヶ月(ほぼサジェスト機能) • SNS • Twitter : @ktaro_w • Qiita : ktaro 2
  • 3. 今日はElasticsearch サジェスト機能の話 3
  • 4. 背景 • 弊社は、全文検索システム・サジェストシステムを
 Elasticsearchに移行中 • プロジェクトに参加した時点では、サジェストは
 未着手の状態 • サジェストシステムの移行を担当 4
  • 5. 仕様について 5
  • 6. 仕様 • 現状のサジェストでは、18個のカテゴリが存在 • それぞれに抽出用のSQLクエリ有り • カテゴリには優先順位がある • 移行後は、任意のカテゴリを組み合わせら れるようにする 6
  • 7. いざ、開発スタート 7
  • 8. まずは、Mappingを作成 8
  • 9. Mapping • 前方一致の「Completion Suggester」 • 利用したパラメータ • index_analyzer • インデキシング時のアナライザ設定 • search_analyzer • 検索時のアナライザ設定 9
  • 10. Mapping Plugins 1. elasticsearch-analysis-kuromoji • 日本語形態素解析エンジン • トークナイズ処理 • フィルタ処理 2. elasticsearch-analysis-icu • 半角・全角、依存文字を統一化 • char_filter : icu_normalizer • ㍉ =>「ミ」「リ」、㌢ =>「セ」「ン」「チ」 10
  • 11. Mapping • filter • type : kuromoji_readingform • use_romaji : true //ローマ字化 • tokenizer • type : kuromoji_tokenizer • mode : search • properties • type : completion //前方一致 • index_analyzer • search_analyzer 11
  • 12. 実際にデータを流し込む
 (Indexing) 12
  • 13. Indexing • 利用したパラメータ • input • サジェストデータ入力 • output • サジェストデータ出力 • weight • ドキュメントの重み付け • 今回の移行では、重要な役割 13
  • 14. Indexing & Search 14 検索時は、POSTメソッドで! 例 : http://localhost:9200/IndexName/_suggest
  • 15. インデックスが完成! 15
  • 16. ここで疑問 16
  • 17. 現状のインデックスで
 高負荷(リクエスト)
 に耐え切れるのか? 17
  • 18. 懸念点 • サジェストシステムはリクエストの頻度が高い • 現状では、最大で18個のインデックスを
 対象にリクエストされる • サーバーのスケールアップやスケールアウトも難しい 18
  • 19. 検証してみた 19
  • 20. 検証項目 1. 個別のインデックスをプログラムから複数選択
 して呼び出す(※複数インデックス) 2. 上記のインデックスが持つドキュメントを
 全て含んだ単一のインデックスをプログラム から呼び出す(※単一インデックス) 20
  • 21. 検証1. 複数インデックス 21 「18」「9」「1」と個別のインデックスにリクエスト 2 17 6 5 4 3 8 9 11 1016 15 14 13 12 17 18 テストツール ノード Elasticsearh Server ① ②
  • 22. 検証2. 単一インデックス 22 「18、9、1」のインデックスのドキュメントを含んだ
 単一のインデックス「A」にリクエスト テストツール ノード Elasticsearh Server 18 1 18,9,1 ・・・ ・・・ ① ② A
  • 23. 検証用テスト環境 • サーバー数 - 1台 • ノード数 - 1個 • シャード数 - 5個 • 総ドキュメント数 - 約30000件 23
  • 24. 検証用テストツール • テストツール「Gatling」 • HTTPリクエストとレスポンスを記録 • グラフィカルに結果を表示 • テストデータとして約20000件の重複のないデータを用意 • テスト項目 • 60秒間でランダムなテストデータを10000リクエスト • 60秒間にランダムなテストデータを20000リクエスト 24
  • 25. 1回目 25 60秒間で、 10000リクエスト
  • 26. 26 複数インデックス 単一インデックス • max response time • 95(ms) • mean response time • 2(ms) • mean requests/sec • 166.617 • max response time • 159(ms) • mean response time • 4(ms) • mean requests/sec • 166.611
  • 27. 2回目 27 60秒間で、 20000リクエスト
  • 28. 28 複数インデックス • max response time • 52351(ms) • mean response time • 6258(ms) • mean requests/sec • 303.467 • max response time • 4071(ms) • mean response time • 135(ms) • mean requests/sec • 333.122 単一インデックス
  • 29. グラフで見てみる 29
  • 30. 30 複数インデックス 単一インデックス
  • 31. 単一インデックスに 軍配が上がる 31
  • 32. まとめ • サジェスト機能の学習コストはそこまで高くない • 日本語の資料は割と少ない • サジェスト用インデックスは、まとめるが得策 • まとめた上で、並列化 • 重み付けもしやすい • Gatlingが便利 32
  • 33. 33 Javaエンジニア・インフラエンジニア
 絶賛募集中!!! 最後に…
  • 34. ご静聴
 ありがとうございました 34

×