Suche senden
Hochladen
Elasticsearchプラグインの作り方
•
21 gefällt mir
•
14,693 views
Shinsuke Sugaya
Folgen
Elasticsearchプラグインの簡単な作り方を紹介します。また、Elasticsearchを便利に利用するためのプラグインも紹介します。
Weniger lesen
Mehr lesen
Ingenieurwesen
Melden
Teilen
Melden
Teilen
1 von 34
Jetzt herunterladen
Downloaden Sie, um offline zu lesen
Empfohlen
Fess/Elasticsearchを使った業務で使える?全文検索への道
Fess/Elasticsearchを使った業務で使える?全文検索への道
Shinsuke Sugaya
SolrとElasticsearchを比べてみよう
SolrとElasticsearchを比べてみよう
Shinsuke Sugaya
Planet-scale Data Ingestion Pipeline: Bigdam
Planet-scale Data Ingestion Pipeline: Bigdam
SATOSHI TAGOMORI
[BurpSuiteJapan]HTTP基礎入門
[BurpSuiteJapan]HTTP基礎入門
Burp Suite Japan User Group
[CB19] アンチウイルスをオラクルとしたWindows Defenderに対する新しい攻撃手法 by 市川遼
[CB19] アンチウイルスをオラクルとしたWindows Defenderに対する新しい攻撃手法 by 市川遼
CODE BLUE
macOSの仮想化技術について ~Virtualization-rs Rust bindings for virtualization.framework ~
macOSの仮想化技術について ~Virtualization-rs Rust bindings for virtualization.framework ~
NTT Communications Technology Development
Network miner 使ってみた
Network miner 使ってみた
彰 村地
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
NTT DATA Technology & Innovation
Empfohlen
Fess/Elasticsearchを使った業務で使える?全文検索への道
Fess/Elasticsearchを使った業務で使える?全文検索への道
Shinsuke Sugaya
SolrとElasticsearchを比べてみよう
SolrとElasticsearchを比べてみよう
Shinsuke Sugaya
Planet-scale Data Ingestion Pipeline: Bigdam
Planet-scale Data Ingestion Pipeline: Bigdam
SATOSHI TAGOMORI
[BurpSuiteJapan]HTTP基礎入門
[BurpSuiteJapan]HTTP基礎入門
Burp Suite Japan User Group
[CB19] アンチウイルスをオラクルとしたWindows Defenderに対する新しい攻撃手法 by 市川遼
[CB19] アンチウイルスをオラクルとしたWindows Defenderに対する新しい攻撃手法 by 市川遼
CODE BLUE
macOSの仮想化技術について ~Virtualization-rs Rust bindings for virtualization.framework ~
macOSの仮想化技術について ~Virtualization-rs Rust bindings for virtualization.framework ~
NTT Communications Technology Development
Network miner 使ってみた
Network miner 使ってみた
彰 村地
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
NTT DATA Technology & Innovation
とある診断員とSQLインジェクション
とある診断員とSQLインジェクション
zaki4649
人生がときめくAPIテスト自動化 with Karate
人生がときめくAPIテスト自動化 with Karate
Takanori Suzuki
とある診断員と色々厄介な脆弱性達
とある診断員と色々厄介な脆弱性達
zaki4649
全文検索サーバ Fess 〜 全文検索システム構築時の悩みどころ
全文検索サーバ Fess 〜 全文検索システム構築時の悩みどころ
Shinsuke Sugaya
Twitterのsnowflakeについて
Twitterのsnowflakeについて
moai kids
OSTree: OSイメージとパッケージシステムの間にGitのアプローチを
OSTree: OSイメージとパッケージシステムの間にGitのアプローチを
i_yudai
実践イカパケット解析
実践イカパケット解析
Yuki Mizuno
ネットワークの自動化・監視の取り組みについて #netopscoding #npstudy
ネットワークの自動化・監視の取り組みについて #netopscoding #npstudy
Yahoo!デベロッパーネットワーク
Wiresharkの解析プラグインを作る ssmjp 201409
Wiresharkの解析プラグインを作る ssmjp 201409
稔 小林
イエラエセキュリティMeet up 20210820
イエラエセキュリティMeet up 20210820
GMOサイバーセキュリティ byイエラエ株式会社
はじめてのElasticsearchクラスタ
はじめてのElasticsearchクラスタ
Satoyuki Tsukano
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptx
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptx
Shota Shinogi
DevLOVE DDDBC
DevLOVE DDDBC
Takuto Wada
BuildKitの概要と最近の機能
BuildKitの概要と最近の機能
Kohei Tokunaga
【第26回Elasticsearch勉強会】Logstashとともに振り返る、やっちまった事例ごった煮
【第26回Elasticsearch勉強会】Logstashとともに振り返る、やっちまった事例ごった煮
Hibino Hisashi
Docker Compose 徹底解説
Docker Compose 徹底解説
Masahito Zembutsu
PHP-FPM の子プロセス制御方法と設定をおさらいしよう
PHP-FPM の子プロセス制御方法と設定をおさらいしよう
Shohei Okada
Swagger ではない OpenAPI Specification 3.0 による API サーバー開発
Swagger ではない OpenAPI Specification 3.0 による API サーバー開発
Yahoo!デベロッパーネットワーク
[社内勉強会]ワークフローエンジンdigdag研究&プロダクトF.O.Xに導入
[社内勉強会]ワークフローエンジンdigdag研究&プロダクトF.O.Xに導入
Takahiro Moteki
Wireshark だけに頼らない! パケット解析ツールの紹介
Wireshark だけに頼らない! パケット解析ツールの紹介
morihisa
Elasticsearch at CrowdWorks
Elasticsearch at CrowdWorks
佑介 九岡
2014 11-20 Machine Learning with Apache Spark 勉強会資料
2014 11-20 Machine Learning with Apache Spark 勉強会資料
Recruit Technologies
Weitere ähnliche Inhalte
Was ist angesagt?
とある診断員とSQLインジェクション
とある診断員とSQLインジェクション
zaki4649
人生がときめくAPIテスト自動化 with Karate
人生がときめくAPIテスト自動化 with Karate
Takanori Suzuki
とある診断員と色々厄介な脆弱性達
とある診断員と色々厄介な脆弱性達
zaki4649
全文検索サーバ Fess 〜 全文検索システム構築時の悩みどころ
全文検索サーバ Fess 〜 全文検索システム構築時の悩みどころ
Shinsuke Sugaya
Twitterのsnowflakeについて
Twitterのsnowflakeについて
moai kids
OSTree: OSイメージとパッケージシステムの間にGitのアプローチを
OSTree: OSイメージとパッケージシステムの間にGitのアプローチを
i_yudai
実践イカパケット解析
実践イカパケット解析
Yuki Mizuno
ネットワークの自動化・監視の取り組みについて #netopscoding #npstudy
ネットワークの自動化・監視の取り組みについて #netopscoding #npstudy
Yahoo!デベロッパーネットワーク
Wiresharkの解析プラグインを作る ssmjp 201409
Wiresharkの解析プラグインを作る ssmjp 201409
稔 小林
イエラエセキュリティMeet up 20210820
イエラエセキュリティMeet up 20210820
GMOサイバーセキュリティ byイエラエ株式会社
はじめてのElasticsearchクラスタ
はじめてのElasticsearchクラスタ
Satoyuki Tsukano
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptx
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptx
Shota Shinogi
DevLOVE DDDBC
DevLOVE DDDBC
Takuto Wada
BuildKitの概要と最近の機能
BuildKitの概要と最近の機能
Kohei Tokunaga
【第26回Elasticsearch勉強会】Logstashとともに振り返る、やっちまった事例ごった煮
【第26回Elasticsearch勉強会】Logstashとともに振り返る、やっちまった事例ごった煮
Hibino Hisashi
Docker Compose 徹底解説
Docker Compose 徹底解説
Masahito Zembutsu
PHP-FPM の子プロセス制御方法と設定をおさらいしよう
PHP-FPM の子プロセス制御方法と設定をおさらいしよう
Shohei Okada
Swagger ではない OpenAPI Specification 3.0 による API サーバー開発
Swagger ではない OpenAPI Specification 3.0 による API サーバー開発
Yahoo!デベロッパーネットワーク
[社内勉強会]ワークフローエンジンdigdag研究&プロダクトF.O.Xに導入
[社内勉強会]ワークフローエンジンdigdag研究&プロダクトF.O.Xに導入
Takahiro Moteki
Wireshark だけに頼らない! パケット解析ツールの紹介
Wireshark だけに頼らない! パケット解析ツールの紹介
morihisa
Was ist angesagt?
(20)
とある診断員とSQLインジェクション
とある診断員とSQLインジェクション
人生がときめくAPIテスト自動化 with Karate
人生がときめくAPIテスト自動化 with Karate
とある診断員と色々厄介な脆弱性達
とある診断員と色々厄介な脆弱性達
全文検索サーバ Fess 〜 全文検索システム構築時の悩みどころ
全文検索サーバ Fess 〜 全文検索システム構築時の悩みどころ
Twitterのsnowflakeについて
Twitterのsnowflakeについて
OSTree: OSイメージとパッケージシステムの間にGitのアプローチを
OSTree: OSイメージとパッケージシステムの間にGitのアプローチを
実践イカパケット解析
実践イカパケット解析
ネットワークの自動化・監視の取り組みについて #netopscoding #npstudy
ネットワークの自動化・監視の取り組みについて #netopscoding #npstudy
Wiresharkの解析プラグインを作る ssmjp 201409
Wiresharkの解析プラグインを作る ssmjp 201409
イエラエセキュリティMeet up 20210820
イエラエセキュリティMeet up 20210820
はじめてのElasticsearchクラスタ
はじめてのElasticsearchクラスタ
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptx
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptx
DevLOVE DDDBC
DevLOVE DDDBC
BuildKitの概要と最近の機能
BuildKitの概要と最近の機能
【第26回Elasticsearch勉強会】Logstashとともに振り返る、やっちまった事例ごった煮
【第26回Elasticsearch勉強会】Logstashとともに振り返る、やっちまった事例ごった煮
Docker Compose 徹底解説
Docker Compose 徹底解説
PHP-FPM の子プロセス制御方法と設定をおさらいしよう
PHP-FPM の子プロセス制御方法と設定をおさらいしよう
Swagger ではない OpenAPI Specification 3.0 による API サーバー開発
Swagger ではない OpenAPI Specification 3.0 による API サーバー開発
[社内勉強会]ワークフローエンジンdigdag研究&プロダクトF.O.Xに導入
[社内勉強会]ワークフローエンジンdigdag研究&プロダクトF.O.Xに導入
Wireshark だけに頼らない! パケット解析ツールの紹介
Wireshark だけに頼らない! パケット解析ツールの紹介
Andere mochten auch
Elasticsearch at CrowdWorks
Elasticsearch at CrowdWorks
佑介 九岡
2014 11-20 Machine Learning with Apache Spark 勉強会資料
2014 11-20 Machine Learning with Apache Spark 勉強会資料
Recruit Technologies
協調フィルタリング入門
協調フィルタリング入門
hoxo_m
ElasticsearchとTasteプラグインで作るレコメンドシステム
ElasticsearchとTasteプラグインで作るレコメンドシステム
Shinsuke Sugaya
PredictionIOでSparkMLを使った開発方法
PredictionIOでSparkMLを使った開発方法
Shinsuke Sugaya
Tensor Decomposition and its Applications
Tensor Decomposition and its Applications
Keisuke OTAKI
Elasticsearchで作る形態素解析サーバ
Elasticsearchで作る形態素解析サーバ
Shinsuke Sugaya
ESFluteによるElasticsearchでのO/Rマッパーを用いた開発
ESFluteによるElasticsearchでのO/Rマッパーを用いた開発
Shinsuke Sugaya
LastaFluteに移行したFessとElasticsearch+ESFluteによるDBFlute環境
LastaFluteに移行したFessとElasticsearch+ESFluteによるDBFlute環境
Shinsuke Sugaya
AI社会論研究会
AI社会論研究会
Hiroshi Nakagawa
Scala警察のすすめ
Scala警察のすすめ
takezoe
[DL輪読会]A Bayesian Perspective on Generalization and Stochastic Gradient Descent
[DL輪読会]A Bayesian Perspective on Generalization and Stochastic Gradient Descent
Deep Learning JP
TensorFlowで逆強化学習
TensorFlowで逆強化学習
Mitsuhisa Ohta
Elasticsearchベースの全文検索システムFess
Elasticsearchベースの全文検索システムFess
Shinsuke Sugaya
生成モデルの Deep Learning
生成モデルの Deep Learning
Seiya Tokui
Andere mochten auch
(15)
Elasticsearch at CrowdWorks
Elasticsearch at CrowdWorks
2014 11-20 Machine Learning with Apache Spark 勉強会資料
2014 11-20 Machine Learning with Apache Spark 勉強会資料
協調フィルタリング入門
協調フィルタリング入門
ElasticsearchとTasteプラグインで作るレコメンドシステム
ElasticsearchとTasteプラグインで作るレコメンドシステム
PredictionIOでSparkMLを使った開発方法
PredictionIOでSparkMLを使った開発方法
Tensor Decomposition and its Applications
Tensor Decomposition and its Applications
Elasticsearchで作る形態素解析サーバ
Elasticsearchで作る形態素解析サーバ
ESFluteによるElasticsearchでのO/Rマッパーを用いた開発
ESFluteによるElasticsearchでのO/Rマッパーを用いた開発
LastaFluteに移行したFessとElasticsearch+ESFluteによるDBFlute環境
LastaFluteに移行したFessとElasticsearch+ESFluteによるDBFlute環境
AI社会論研究会
AI社会論研究会
Scala警察のすすめ
Scala警察のすすめ
[DL輪読会]A Bayesian Perspective on Generalization and Stochastic Gradient Descent
[DL輪読会]A Bayesian Perspective on Generalization and Stochastic Gradient Descent
TensorFlowで逆強化学習
TensorFlowで逆強化学習
Elasticsearchベースの全文検索システムFess
Elasticsearchベースの全文検索システムFess
生成モデルの Deep Learning
生成モデルの Deep Learning
Ähnlich wie Elasticsearchプラグインの作り方
C#勉強会 ~ C#9の新機能 ~
C#勉強会 ~ C#9の新機能 ~
Fujio Kojima
Elastic circle ci-co-webinar-20210127
Elastic circle ci-co-webinar-20210127
Shotaro Suzuki
基礎から見直す ASP.NET MVC の単体テスト自動化方法 ~ Windows Azure 関連もあるかも~
基礎から見直す ASP.NET MVC の単体テスト自動化方法 ~ Windows Azure 関連もあるかも~
normalian
React.jsでクライアントサイドなWebアプリ入門
React.jsでクライアントサイドなWebアプリ入門
spring_raining
Building asp.net core blazor and elasticsearch elasticsearch using visual stu...
Building asp.net core blazor and elasticsearch elasticsearch using visual stu...
Shotaro Suzuki
エンタープライズ分野での実践AngularJS
エンタープライズ分野での実践AngularJS
Ayumi Goto
Ajax 応用
Ajax 応用
Katsuyuki Seino
OpenStack API
OpenStack API
Akira Yoshiyama
SpringMVCとmixer2で作るWebアプリのキホン 2013-01-24 Spring勉強会 #jsug
SpringMVCとmixer2で作るWebアプリのキホン 2013-01-24 Spring勉強会 #jsug
Y Watanabe
Grails 2.0.0.M1の話
Grails 2.0.0.M1の話
Tsuyoshi Yamamoto
Alfresco勉強会#36 alfresco 5でカスタムREST APIを作ってみよう
Alfresco勉強会#36 alfresco 5でカスタムREST APIを作ってみよう
Tasuku Otani
Google App Engine for Java
Google App Engine for Java
Takuya Tsuchida
Spring data-rest-and-spring-cloud-contract
Spring data-rest-and-spring-cloud-contract
Takeshi Ogawa
Renewed using elasticsearchonaspnet-core5
Renewed using elasticsearchonaspnet-core5
Shotaro Suzuki
ASP.NET シングル ページ アプリケーション (SPA) 詳説
ASP.NET シングル ページ アプリケーション (SPA) 詳説
Akira Inoue
Visual Studio 2012 Web 開発 ~ One ASP.NET から TypeScript まで ~
Visual Studio 2012 Web 開発 ~ One ASP.NET から TypeScript まで ~
Akira Inoue
イマドキの現場で使えるJavaライブラリ事情
イマドキの現場で使えるJavaライブラリ事情
takezoe
CategoLJについて
CategoLJについて
Toshiaki Maki
Elastic Stack を網羅する ハンズオンワークショップを 作ってみた.pdf
Elastic Stack を網羅する ハンズオンワークショップを 作ってみた.pdf
Koji Kawamura
node+socket.io+enchant.jsでチャットゲーを作る
node+socket.io+enchant.jsでチャットゲーを作る
Kiyoshi SATOH
Ähnlich wie Elasticsearchプラグインの作り方
(20)
C#勉強会 ~ C#9の新機能 ~
C#勉強会 ~ C#9の新機能 ~
Elastic circle ci-co-webinar-20210127
Elastic circle ci-co-webinar-20210127
基礎から見直す ASP.NET MVC の単体テスト自動化方法 ~ Windows Azure 関連もあるかも~
基礎から見直す ASP.NET MVC の単体テスト自動化方法 ~ Windows Azure 関連もあるかも~
React.jsでクライアントサイドなWebアプリ入門
React.jsでクライアントサイドなWebアプリ入門
Building asp.net core blazor and elasticsearch elasticsearch using visual stu...
Building asp.net core blazor and elasticsearch elasticsearch using visual stu...
エンタープライズ分野での実践AngularJS
エンタープライズ分野での実践AngularJS
Ajax 応用
Ajax 応用
OpenStack API
OpenStack API
SpringMVCとmixer2で作るWebアプリのキホン 2013-01-24 Spring勉強会 #jsug
SpringMVCとmixer2で作るWebアプリのキホン 2013-01-24 Spring勉強会 #jsug
Grails 2.0.0.M1の話
Grails 2.0.0.M1の話
Alfresco勉強会#36 alfresco 5でカスタムREST APIを作ってみよう
Alfresco勉強会#36 alfresco 5でカスタムREST APIを作ってみよう
Google App Engine for Java
Google App Engine for Java
Spring data-rest-and-spring-cloud-contract
Spring data-rest-and-spring-cloud-contract
Renewed using elasticsearchonaspnet-core5
Renewed using elasticsearchonaspnet-core5
ASP.NET シングル ページ アプリケーション (SPA) 詳説
ASP.NET シングル ページ アプリケーション (SPA) 詳説
Visual Studio 2012 Web 開発 ~ One ASP.NET から TypeScript まで ~
Visual Studio 2012 Web 開発 ~ One ASP.NET から TypeScript まで ~
イマドキの現場で使えるJavaライブラリ事情
イマドキの現場で使えるJavaライブラリ事情
CategoLJについて
CategoLJについて
Elastic Stack を網羅する ハンズオンワークショップを 作ってみた.pdf
Elastic Stack を網羅する ハンズオンワークショップを 作ってみた.pdf
node+socket.io+enchant.jsでチャットゲーを作る
node+socket.io+enchant.jsでチャットゲーを作る
Mehr von Shinsuke Sugaya
社内ドキュメント検索システム構築のノウハウ
社内ドキュメント検索システム構築のノウハウ
Shinsuke Sugaya
LastaFluteでKotlinをはじめよう
LastaFluteでKotlinをはじめよう
Shinsuke Sugaya
PredictionIOのPython対応計画
PredictionIOのPython対応計画
Shinsuke Sugaya
PredictionIO構築入門
PredictionIO構築入門
Shinsuke Sugaya
Elasticsearch Authプラグインでアクセスコントロール
Elasticsearch Authプラグインでアクセスコントロール
Shinsuke Sugaya
DBFlute Mavenプラグインを用いてCRUD作成
DBFlute Mavenプラグインを用いてCRUD作成
Shinsuke Sugaya
DBFluteを用いて開発されている全文検索システムFess
DBFluteを用いて開発されている全文検索システムFess
Shinsuke Sugaya
elasticsearchプラグイン入門
elasticsearchプラグイン入門
Shinsuke Sugaya
Solrベースの全文検索サーバ Fess
Solrベースの全文検索サーバ Fess
Shinsuke Sugaya
Sc2009autumn s2robot
Sc2009autumn s2robot
Shinsuke Sugaya
オフィスに1台!全文検索Fess
オフィスに1台!全文検索Fess
Shinsuke Sugaya
Mehr von Shinsuke Sugaya
(11)
社内ドキュメント検索システム構築のノウハウ
社内ドキュメント検索システム構築のノウハウ
LastaFluteでKotlinをはじめよう
LastaFluteでKotlinをはじめよう
PredictionIOのPython対応計画
PredictionIOのPython対応計画
PredictionIO構築入門
PredictionIO構築入門
Elasticsearch Authプラグインでアクセスコントロール
Elasticsearch Authプラグインでアクセスコントロール
DBFlute Mavenプラグインを用いてCRUD作成
DBFlute Mavenプラグインを用いてCRUD作成
DBFluteを用いて開発されている全文検索システムFess
DBFluteを用いて開発されている全文検索システムFess
elasticsearchプラグイン入門
elasticsearchプラグイン入門
Solrベースの全文検索サーバ Fess
Solrベースの全文検索サーバ Fess
Sc2009autumn s2robot
Sc2009autumn s2robot
オフィスに1台!全文検索Fess
オフィスに1台!全文検索Fess
Elasticsearchプラグインの作り方
1.
Elasticsearchプラグインの作り方 ~ CodeLibsの便利なプラグイン紹介
第7回Elasticsearch勉強会
2.
第7回Elasticsearch勉強会 名前: 菅谷信介
所属: N2SM, Inc. (http://www.n2sm.net/) オープンソース活動: Apache Portals コミッタ Seasarプロジェクトコミッタ CodeLibsプロジェクト運営 (https://github.com/codelibs) などなど・・・ Github: https://github.com/codelibs Blog: http://www.chazine.com/ Twitter: https://twitter.com/shinsuke_sugaya/ 自己紹介 2
3.
第7回Elasticsearch勉強会 アジェンダ Elasticsearchプラグインとは
プラグインの作り方 CodeLibsのプラグイン紹介 まとめ 3
4.
第7回Elasticsearch勉強会 Elasticsearchプラグインとは 4
5.
第7回Elasticsearch勉強会 Elasticsearchの機能を拡張する仕組み pluginコマンドにより簡単にインストール
プラグインは2種類ある ネイティブなプラグイン (今日は主にコレ) Elasticsearchの機能自体を変更・拡張する サイトプラグイン HeadやkopfのようにHTMLでの情報提供系 ネイティブなプラグインはJavaで作り、jar ファイルをzipでまとめたもの Elasticsearchプラグインとは 5
6.
第7回Elasticsearch勉強会 プラグインの作り方 6
7.
第7回Elasticsearch勉強会 必要なもの Java
7以上 Maven 以下のコマンド実行でプロジェクトが完成! $ mvn archetype:generate ¥ -DarchetypeGroupId=org.codelibs ¥ -DarchetypeArtifactId=elasticsearch-plugin-archetype ¥ -DarchetypeVersion=1.4.0 ¥ -DelasticsearchVersion=1.4.0 ¥ -DgroupId=com.yourplugin ¥ -DartifactId=elasticsearch-yourplugin ¥ -Dversion=1.0-SNAPSHOT ¥ -DpluginName=YourPlugin プラグインプロジェクトの作成 赤字部分を変更する 7
8.
第7回Elasticsearch勉強会 プラグインのzipファイルを生成 $
mvn package (target/releasesディレクトリ以下に生成される) プラグインのインストール $ $ES_HOME/bin/plugin –i yourplugin -u file:/path/elasticsearch-yourplugin.zip あとはElasticsearchを再起動すればOK! プラグインの生成 8
9.
第7回Elasticsearch勉強会 という感じで、 Elasticsearchプラグインは
簡単に作って インストールできます 9
10.
第7回Elasticsearch勉強会 もう少し プラグインの作り方の
説明します… 10
11.
第7回Elasticsearch勉強会 Elasticsearchプラグインを作成するための Maven
Archetype ブランクプロジェクト(ひな形)が作成できる コマンド一つでプロジェクトが作成可能 Elasticsearch 1.xごとにArchetypeは提供 Elasticsearchがマイナーバージョンアップで I/Fが変わるため、作り直している… シンプルなプロジェクトが作成されるので、 必要なものを追加や削除すれば、簡単に Elasticsearchのプラグインができます! Elasticsearch Plugin Archetype https://github.com/codelibs/elasticsearch-plugin-archetype 11
12.
第7回Elasticsearch勉強会 プロジェクト設定ファイル pom.xml
プラグイン情報ファイル src/main/resources/es-plugin.properties プラグインのベースとなるソース src/main/java/com/yourplugin/YourPluginPlugin.java REST用ソース src/main/java/com/yourplugin/rest/YourPluginRestAction.java サービス用ソース src/main/java/com/yourplugin/module/YourPluginModule.java src/main/java/com/yourplugin/service/YourPluginService.java River用ソース src/main/java/com/yourplugin/module/YourPluginRiverModule.java src/main/java/com/yourplugin/river/YourPluginRiver.java プラグイン生成情報のファイル src/main/assemblies/plugin.xml Archetypeの生成物 12
13.
第7回Elasticsearch勉強会 public class
YourPluginRestAction extends BaseRestHandler { @Inject public YourPluginRestAction(final Settings settings, final Client client, final RestController controller) { super(settings, controller, client); controller.registerHandler(RestRequest.Method.GET, "/{index}/{type}/_hello", this); controller.registerHandler(RestRequest.Method.GET, "/{index}/_hello", this); } 例:REST APIを拡張 (その1) 13 受け付けるHTTPメソッドやパスを指定する
14.
第7回Elasticsearch勉強会 @Override protected
void handleRequest(final RestRequest request, final RestChannel channel, Client client) { try { final XContentBuilder builder = JsonXContent.contentBuilder(); builder.startObject(); builder.field("index", request.param("index")); builder.field("type", request.param("type")); builder.field("description", "This is a elasticsearch-yourplugin response: " + new Date().toString()); builder.endObject(); channel.sendResponse(new BytesRestResponse(OK, builder)); } catch (final IOException e) { try { channel.sendResponse(new BytesRestResponse(channel, e)); } catch (final IOException e1) { logger.error("Failed to send a failure response.", e1); } } } 例:REST APIを拡張 (その2) 14 返却するJSONをこの辺に記述する
15.
第7回Elasticsearch勉強会 CodeLibsプラグインの紹介 15
16.
第7回Elasticsearch勉強会 ウェブサイトをクロールして、ページをイン デックス化する
(サイト内検索にも利用可) 全文検索サーバFessと同じクローラー CSSクエリーによるウェブスクレイピング スクリプトにより編集して登録 クロール開始時間をスケジュール BASIC/DIGEST/NTLM認証に対応 attachmentタイプもサポート Elasticsearch River Web https://github.com/codelibs/elasticsearch-river-web 16
17.
第7回Elasticsearch勉強会 SolrのI/FでElasticsearchにアクセス Mock
Solrプラグインがメンテされていないので フォークして提供 検索・更新に対応 Geoサーチにはまだ未対応 Solr形式のXML/JavaBinフォーマットに対応 SolrJ等でSolrのツールが利用可能 利用例 Solr環境からの移行 Elasticsearch Solr API https://github.com/codelibs/elasticsearch-solr-api 17
18.
第7回Elasticsearch勉強会 Mahout Tasteをベースのリコメンド機能
利用者/商品/嗜好データ管理 情報をインデックスで管理 利用者/商品ベースのリコメンド 類似利用者の算出 テキスト分析 (商品情報のタームベクターの 生成等) 「利用者/商品/嗜好→ドキュメント/ターム/ 出現数」として、協調フィルタリングによる ドキュメントのリコメンド Elasticsearch Taste https://github.com/codelibs/elasticsearch-taste 18
19.
第7回Elasticsearch勉強会 生成済みのインデックスをコピーして、 新しいインデックスを作成する
_sourceからデータをスクロールスキャンして、 インデックスを生成 簡単にインデックスをコピー可能 利用例 テスト等で既存インデックスから、Analyzerや マッピングが異なるインデックスを作成する 今後:他のクラスターに対しても再インデク シングを可能にしたい Elasticsearch Reindexing https://github.com/codelibs/elasticsearch-reindexing 19
20.
第7回Elasticsearch勉強会 Excel/CSV/バルクJSON形式でデータをダン プする
Excelでダンプできる! …/_searchの代わりに…/_dataを指定する 利用例 Excel好きな人に結果を渡す バルクJSON形式で部分抽出をして、別インデッ クスにバルク投入して利用(全データが必要 ない場合とか) 今後:内部ロジックでレスポンスの返却の仕 方を改善 Elasticsearch Data Format https://github.com/codelibs/elasticsearch-dataformat 20
21.
第7回Elasticsearch勉強会 スクリプトを利用したクエリーテンプレート 任意のスクリプト言語でクエリーを組み立てる
(標準のmustacheは穴埋め的なクエリー作成が 可能だがそれでは物足りない人向け) 標準のクエリーテンプレートとほぼ同じ langを指定する追加する パラメータ書き換えのためのフィルタ機能 利用例 パラメータによりクエリーを変更する A/Bテスト https://github.com/codelibs/elasticsearch-sstmpl Elasticsearch Script-based Search Template 21
22.
第7回Elasticsearch勉強会 クエリー例 GET
/_search/template { "lang": "groovy", "template": "'{¥"query¥": {¥"match¥": {¥"title¥": ¥"' + query_string + '¥"}}}'", "params": { "query_string": "search for these words" } } langでtemplateのスクリプト言語を指定 利用したいスクリプト言語は追加しておく https://github.com/codelibs/elasticsearch-sstmpl Elasticsearch SSTmplの例 22
23.
第7回Elasticsearch勉強会 Handlebarsをスクリプト言語として Elasticsearchに追加する
クエリーテンプレートで標準のmustacheで できなかった、ロジックが書ける HandlebarsのHelperもjsファイルで記述す ることが可能 Elasticsearch Handlebars Lang https://github.com/codelibs/elasticsearch-lang-handlebars 23
24.
第7回Elasticsearch勉強会 Velocityをスクリプト言語として Elasticsearchに追加する
クエリーテンプレートでVelocityが利用可能 Dynamic Scriptingを有効にする script.disable_dynamic: false Elasticsearch Velocity Lang https://github.com/codelibs/elasticsearch-lang-velocity 24
25.
第7回Elasticsearch勉強会 インデクシング時に指定されたフィールドの 単語に対するb-bit
MinHashを計算・保存 簡単にいうと、MinHashは高速に2つのデータを 比較する方法 (文書も指定したビット列に変換さ れ、それだけを比較することで一致を判断) プラグインでバイトフィールドに格納 0/1のビットの文字列でも格納可能 利用例 類似文書の検索 高速に類似ドキュメントを計算 Elasticsearch MinHash https://github.com/codelibs/elasticsearch-minhash 25
26.
第7回Elasticsearch勉強会 検索結果の上位N件を並び替える 並び替えはスクリプト言語で記述する
標準のRescoringはシャード単位だが、 DynaRankはマージされた結果に対して 並び替えを行う N+1番目以降は通常の検索結果と同様 インデックス設定を変更することで、動的に 有効・無効にすることができる 利用例 特定の内容は上位に表示する 検索結果の重複をなくす Elasticsearch DynaRank https://github.com/codelibs/elasticsearch-dynarank 26
27.
第7回Elasticsearch勉強会 検索結果をキャッシュする Solrでいうと、Query
Result Cacheのこと (QRコードのキャッシュではないです…) インデックスがあまり更新されないような ケースで有効 リアルタイムとは逆行するがインデックスの 種類によっては更新頻度が低いものもある キャッシュは保存量、期限、Refreshの呼び 出しにより、クリア可能 Elasticsearch QRCache https://github.com/codelibs/elasticsearch-qrcache 27
28.
第7回Elasticsearch勉強会 クラスタイベントが発生したときに指定した スクリプトを実行する
利用例 マスターノードが切り替わった場合に通知する ノードが増減した場合にスクリプトを実行する 今後:Elasticsearchのバージョンによりイベ ント内容が異なるので、クラスターイベント を汎用化したい Elasticsearch Event Hook https://github.com/codelibs/elasticsearch-eventhook 28
29.
第7回Elasticsearch勉強会 ElasticsearchのREST APIをアクセス制御す
るプラグイン ユーザー管理 REST APIのアクセス管理 ログイン/ログアウト/トークン デフォルトのユーザー管理はElasticsearchの インデックスを利用(拡張可能な実装) パス、HTTPメソッド、ロールの組み合わせ 今後:shieldの内容を見て考える(と思う) Elasticsearch Auth https://github.com/codelibs/elasticsearch-auth 29
30.
第7回Elasticsearch勉強会 その他 30
31.
第7回Elasticsearch勉強会 Javaのコード上でElasticsearchのクラスタ を立ち上げる
1つのJVM上に複数のElasticsearchを起動す ることが可能 利用例 JunitなどのテストケースでElasticsearchを立ち 上げて動作確認する バッチ処理の中でElasticsearchを立ち上げ、ス ナップショットから復元して処理する(本稼働の ESに影響を与えずに同等のインデックスで処理 可能) Elastisearchの動作調査や学習目的での利用 Elasticsearch Cluster Runner https://github.com/codelibs/elasticsearch-cluster-runner 31
32.
第7回Elasticsearch勉強会 まとめ 32
33.
第7回Elasticsearch勉強会 まとめ (プラグイン作りについて)
プラグインを作れば、Elasticsearchをいろ いろと拡張できるので、可能性が広がる Solrと比較してもプラグインは作りやすいし、 導入しやすい 結構、いろいろと差し替えることができる RESTのプラグインから作るとわかりやすい マニアックなことしたいと情報はソースのみ Elasticsearchのバージョンが上がると、 たまに動かなくなる可能性がある… まだまだ作りたいプラグインがある… 33
34.
第7回Elasticsearch勉強会 Q&A 34
Jetzt herunterladen