SlideShare a Scribd company logo
1 of 34
Download to read offline
Elasticsearchプラグインの作り方 
~ CodeLibsの便利なプラグイン紹介 
第7回Elasticsearch勉強会
第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
第7回Elasticsearch勉強会 
アジェンダ 
Elasticsearchプラグインとは 
プラグインの作り方 
CodeLibsのプラグイン紹介 
まとめ 
3
第7回Elasticsearch勉強会 
Elasticsearchプラグインとは 
4
第7回Elasticsearch勉強会 
Elasticsearchの機能を拡張する仕組み 
pluginコマンドにより簡単にインストール 
プラグインは2種類ある 
ネイティブなプラグイン (今日は主にコレ) Elasticsearchの機能自体を変更・拡張する 
サイトプラグイン HeadやkopfのようにHTMLでの情報提供系 
ネイティブなプラグインはJavaで作り、jar ファイルをzipでまとめたもの 
Elasticsearchプラグインとは 
5
第7回Elasticsearch勉強会 
プラグインの作り方 
6
第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
第7回Elasticsearch勉強会 
プラグインのzipファイルを生成 $ mvn package (target/releasesディレクトリ以下に生成される) 
プラグインのインストール $ $ES_HOME/bin/plugin –i yourplugin -u file:/path/elasticsearch-yourplugin.zip あとはElasticsearchを再起動すればOK! 
プラグインの生成 
8
第7回Elasticsearch勉強会 
という感じで、 Elasticsearchプラグインは 簡単に作って インストールできます 
9
第7回Elasticsearch勉強会 
もう少し プラグインの作り方の 説明します… 
10
第7回Elasticsearch勉強会 
Elasticsearchプラグインを作成するための Maven Archetype 
ブランクプロジェクト(ひな形)が作成できる 
コマンド一つでプロジェクトが作成可能 
Elasticsearch 1.xごとにArchetypeは提供 
Elasticsearchがマイナーバージョンアップで I/Fが変わるため、作り直している… 
シンプルなプロジェクトが作成されるので、 必要なものを追加や削除すれば、簡単に Elasticsearchのプラグインができます! 
Elasticsearch Plugin Archetype 
https://github.com/codelibs/elasticsearch-plugin-archetype 
11
第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
第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メソッドやパスを指定する
第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をこの辺に記述する
第7回Elasticsearch勉強会 
CodeLibsプラグインの紹介 
15
第7回Elasticsearch勉強会 
ウェブサイトをクロールして、ページをイン デックス化する (サイト内検索にも利用可) 
全文検索サーバFessと同じクローラー 
CSSクエリーによるウェブスクレイピング 
スクリプトにより編集して登録 
クロール開始時間をスケジュール 
BASIC/DIGEST/NTLM認証に対応 
attachmentタイプもサポート 
Elasticsearch River Web 
https://github.com/codelibs/elasticsearch-river-web 
16
第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
第7回Elasticsearch勉強会 
Mahout Tasteをベースのリコメンド機能 
利用者/商品/嗜好データ管理 
情報をインデックスで管理 
利用者/商品ベースのリコメンド 
類似利用者の算出 
テキスト分析 (商品情報のタームベクターの 生成等) 
「利用者/商品/嗜好→ドキュメント/ターム/ 出現数」として、協調フィルタリングによる ドキュメントのリコメンド 
Elasticsearch Taste 
https://github.com/codelibs/elasticsearch-taste 
18
第7回Elasticsearch勉強会 
生成済みのインデックスをコピーして、 新しいインデックスを作成する 
_sourceからデータをスクロールスキャンして、 インデックスを生成 
簡単にインデックスをコピー可能 
利用例 
テスト等で既存インデックスから、Analyzerや マッピングが異なるインデックスを作成する 
今後:他のクラスターに対しても再インデク シングを可能にしたい 
Elasticsearch Reindexing 
https://github.com/codelibs/elasticsearch-reindexing 
19
第7回Elasticsearch勉強会 
Excel/CSV/バルクJSON形式でデータをダン プする 
Excelでダンプできる! 
…/_searchの代わりに…/_dataを指定する 
利用例 
Excel好きな人に結果を渡す 
バルクJSON形式で部分抽出をして、別インデッ クスにバルク投入して利用(全データが必要 ない場合とか) 
今後:内部ロジックでレスポンスの返却の仕 方を改善 
Elasticsearch Data Format 
https://github.com/codelibs/elasticsearch-dataformat 
20
第7回Elasticsearch勉強会 
スクリプトを利用したクエリーテンプレート 
任意のスクリプト言語でクエリーを組み立てる (標準のmustacheは穴埋め的なクエリー作成が 可能だがそれでは物足りない人向け) 
標準のクエリーテンプレートとほぼ同じ 
langを指定する追加する 
パラメータ書き換えのためのフィルタ機能 
利用例 
パラメータによりクエリーを変更する 
A/Bテスト 
https://github.com/codelibs/elasticsearch-sstmpl 
Elasticsearch Script-based Search Template 
21
第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
第7回Elasticsearch勉強会 
Handlebarsをスクリプト言語として Elasticsearchに追加する 
クエリーテンプレートで標準のmustacheで できなかった、ロジックが書ける 
HandlebarsのHelperもjsファイルで記述す ることが可能 
Elasticsearch Handlebars Lang 
https://github.com/codelibs/elasticsearch-lang-handlebars 
23
第7回Elasticsearch勉強会 
Velocityをスクリプト言語として Elasticsearchに追加する 
クエリーテンプレートでVelocityが利用可能 
Dynamic Scriptingを有効にする script.disable_dynamic: false 
Elasticsearch Velocity Lang 
https://github.com/codelibs/elasticsearch-lang-velocity 
24
第7回Elasticsearch勉強会 
インデクシング時に指定されたフィールドの 単語に対するb-bit MinHashを計算・保存 
簡単にいうと、MinHashは高速に2つのデータを 比較する方法 (文書も指定したビット列に変換さ れ、それだけを比較することで一致を判断) 
プラグインでバイトフィールドに格納 
0/1のビットの文字列でも格納可能 
利用例 
類似文書の検索 
高速に類似ドキュメントを計算 
Elasticsearch MinHash 
https://github.com/codelibs/elasticsearch-minhash 
25
第7回Elasticsearch勉強会 
検索結果の上位N件を並び替える 
並び替えはスクリプト言語で記述する 
標準のRescoringはシャード単位だが、 DynaRankはマージされた結果に対して 並び替えを行う 
N+1番目以降は通常の検索結果と同様 
インデックス設定を変更することで、動的に 有効・無効にすることができる 
利用例 
特定の内容は上位に表示する 
検索結果の重複をなくす 
Elasticsearch DynaRank 
https://github.com/codelibs/elasticsearch-dynarank 
26
第7回Elasticsearch勉強会 
検索結果をキャッシュする 
Solrでいうと、Query Result Cacheのこと (QRコードのキャッシュではないです…) 
インデックスがあまり更新されないような ケースで有効 
リアルタイムとは逆行するがインデックスの 種類によっては更新頻度が低いものもある 
キャッシュは保存量、期限、Refreshの呼び 出しにより、クリア可能 
Elasticsearch QRCache 
https://github.com/codelibs/elasticsearch-qrcache 
27
第7回Elasticsearch勉強会 
クラスタイベントが発生したときに指定した スクリプトを実行する 
利用例 
マスターノードが切り替わった場合に通知する 
ノードが増減した場合にスクリプトを実行する 
今後:Elasticsearchのバージョンによりイベ ント内容が異なるので、クラスターイベント を汎用化したい 
Elasticsearch Event Hook 
https://github.com/codelibs/elasticsearch-eventhook 
28
第7回Elasticsearch勉強会 
ElasticsearchのREST APIをアクセス制御す るプラグイン 
ユーザー管理 
REST APIのアクセス管理 
ログイン/ログアウト/トークン 
デフォルトのユーザー管理はElasticsearchの インデックスを利用(拡張可能な実装) 
パス、HTTPメソッド、ロールの組み合わせ 
今後:shieldの内容を見て考える(と思う) 
Elasticsearch Auth 
https://github.com/codelibs/elasticsearch-auth 
29
第7回Elasticsearch勉強会 
その他 
30
第7回Elasticsearch勉強会 
Javaのコード上でElasticsearchのクラスタ を立ち上げる 
1つのJVM上に複数のElasticsearchを起動す ることが可能 
利用例 
JunitなどのテストケースでElasticsearchを立ち 上げて動作確認する 
バッチ処理の中でElasticsearchを立ち上げ、ス ナップショットから復元して処理する(本稼働の ESに影響を与えずに同等のインデックスで処理 可能) 
Elastisearchの動作調査や学習目的での利用 
Elasticsearch Cluster Runner 
https://github.com/codelibs/elasticsearch-cluster-runner 
31
第7回Elasticsearch勉強会 
まとめ 
32
第7回Elasticsearch勉強会 
まとめ (プラグイン作りについて) 
プラグインを作れば、Elasticsearchをいろ いろと拡張できるので、可能性が広がる 
Solrと比較してもプラグインは作りやすいし、 導入しやすい 
結構、いろいろと差し替えることができる 
RESTのプラグインから作るとわかりやすい 
マニアックなことしたいと情報はソースのみ 
Elasticsearchのバージョンが上がると、 たまに動かなくなる可能性がある… 
まだまだ作りたいプラグインがある… 
33
第7回Elasticsearch勉強会 
Q&A 
34

More Related Content

What's hot

What's hot (20)

分散トレーシング技術について(Open tracingやjaeger)
分散トレーシング技術について(Open tracingやjaeger)分散トレーシング技術について(Open tracingやjaeger)
分散トレーシング技術について(Open tracingやjaeger)
 
社内ドキュメント検索システム構築のノウハウ
社内ドキュメント検索システム構築のノウハウ社内ドキュメント検索システム構築のノウハウ
社内ドキュメント検索システム構築のノウハウ
 
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
 
SPAセキュリティ入門~PHP Conference Japan 2021
SPAセキュリティ入門~PHP Conference Japan 2021SPAセキュリティ入門~PHP Conference Japan 2021
SPAセキュリティ入門~PHP Conference Japan 2021
 
Redisの特徴と活用方法について
Redisの特徴と活用方法についてRedisの特徴と活用方法について
Redisの特徴と活用方法について
 
Swaggerでのapi開発よもやま話
Swaggerでのapi開発よもやま話Swaggerでのapi開発よもやま話
Swaggerでのapi開発よもやま話
 
Elasticsearchベースの全文検索システムFess
Elasticsearchベースの全文検索システムFessElasticsearchベースの全文検索システムFess
Elasticsearchベースの全文検索システムFess
 
Nmapの真実(続)
Nmapの真実(続)Nmapの真実(続)
Nmapの真実(続)
 
Guide To AGPL
Guide To AGPLGuide To AGPL
Guide To AGPL
 
Where狙いのキー、order by狙いのキー
Where狙いのキー、order by狙いのキーWhere狙いのキー、order by狙いのキー
Where狙いのキー、order by狙いのキー
 
あなたの知らないPostgreSQL監視の世界
あなたの知らないPostgreSQL監視の世界あなたの知らないPostgreSQL監視の世界
あなたの知らないPostgreSQL監視の世界
 
20180704 AWS Black Belt Online Seminar Amazon Elastic File System (Amazon EFS...
20180704 AWS Black Belt Online Seminar Amazon Elastic File System (Amazon EFS...20180704 AWS Black Belt Online Seminar Amazon Elastic File System (Amazon EFS...
20180704 AWS Black Belt Online Seminar Amazon Elastic File System (Amazon EFS...
 
BuildKitによる高速でセキュアなイメージビルド
BuildKitによる高速でセキュアなイメージビルドBuildKitによる高速でセキュアなイメージビルド
BuildKitによる高速でセキュアなイメージビルド
 
ガチ(?)対決!OSSのジョブ管理ツール
ガチ(?)対決!OSSのジョブ管理ツールガチ(?)対決!OSSのジョブ管理ツール
ガチ(?)対決!OSSのジョブ管理ツール
 
Elasticsearch の検索精度のチューニング 〜テストを作って高速かつ安全に〜
Elasticsearch の検索精度のチューニング 〜テストを作って高速かつ安全に〜Elasticsearch の検索精度のチューニング 〜テストを作って高速かつ安全に〜
Elasticsearch の検索精度のチューニング 〜テストを作って高速かつ安全に〜
 
MySQL SYSスキーマのご紹介
MySQL SYSスキーマのご紹介MySQL SYSスキーマのご紹介
MySQL SYSスキーマのご紹介
 
Vacuum徹底解説
Vacuum徹底解説Vacuum徹底解説
Vacuum徹底解説
 
[社内勉強会]ELBとALBと数万スパイク負荷テスト
[社内勉強会]ELBとALBと数万スパイク負荷テスト[社内勉強会]ELBとALBと数万スパイク負荷テスト
[社内勉強会]ELBとALBと数万スパイク負荷テスト
 
まずやっとくPostgreSQLチューニング
まずやっとくPostgreSQLチューニングまずやっとくPostgreSQLチューニング
まずやっとくPostgreSQLチューニング
 
AWSのログ管理ベストプラクティス
AWSのログ管理ベストプラクティスAWSのログ管理ベストプラクティス
AWSのログ管理ベストプラクティス
 

Viewers also liked

Viewers also liked (14)

Elasticsearch at CrowdWorks
Elasticsearch at CrowdWorksElasticsearch at CrowdWorks
Elasticsearch at CrowdWorks
 
2014 11-20 Machine Learning with Apache Spark 勉強会資料
2014 11-20 Machine Learning with Apache Spark 勉強会資料2014 11-20 Machine Learning with Apache Spark 勉強会資料
2014 11-20 Machine Learning with Apache Spark 勉強会資料
 
協調フィルタリング入門
協調フィルタリング入門協調フィルタリング入門
協調フィルタリング入門
 
ElasticsearchとTasteプラグインで作るレコメンドシステム
ElasticsearchとTasteプラグインで作るレコメンドシステムElasticsearchとTasteプラグインで作るレコメンドシステム
ElasticsearchとTasteプラグインで作るレコメンドシステム
 
PredictionIOでSparkMLを使った開発方法
PredictionIOでSparkMLを使った開発方法PredictionIOでSparkMLを使った開発方法
PredictionIOでSparkMLを使った開発方法
 
Tensor Decomposition and its Applications
Tensor Decomposition and its ApplicationsTensor Decomposition and its Applications
Tensor Decomposition and its Applications
 
Elasticsearchで作る形態素解析サーバ
Elasticsearchで作る形態素解析サーバElasticsearchで作る形態素解析サーバ
Elasticsearchで作る形態素解析サーバ
 
ESFluteによるElasticsearchでのO/Rマッパーを用いた開発
ESFluteによるElasticsearchでのO/Rマッパーを用いた開発ESFluteによるElasticsearchでのO/Rマッパーを用いた開発
ESFluteによるElasticsearchでのO/Rマッパーを用いた開発
 
LastaFluteに移行したFessとElasticsearch+ESFluteによるDBFlute環境
LastaFluteに移行したFessとElasticsearch+ESFluteによるDBFlute環境LastaFluteに移行したFessとElasticsearch+ESFluteによるDBFlute環境
LastaFluteに移行したFessとElasticsearch+ESFluteによるDBFlute環境
 
AI社会論研究会
AI社会論研究会AI社会論研究会
AI社会論研究会
 
Scala警察のすすめ
Scala警察のすすめScala警察のすすめ
Scala警察のすすめ
 
[DL輪読会]A Bayesian Perspective on Generalization and Stochastic Gradient Descent
 [DL輪読会]A Bayesian Perspective on Generalization and Stochastic Gradient Descent [DL輪読会]A Bayesian Perspective on Generalization and Stochastic Gradient Descent
[DL輪読会]A Bayesian Perspective on Generalization and Stochastic Gradient Descent
 
TensorFlowで逆強化学習
TensorFlowで逆強化学習TensorFlowで逆強化学習
TensorFlowで逆強化学習
 
生成モデルの Deep Learning
生成モデルの Deep Learning生成モデルの Deep Learning
生成モデルの Deep Learning
 

Similar to Elasticsearchプラグインの作り方

エンタープライズ分野での実践AngularJS
エンタープライズ分野での実践AngularJSエンタープライズ分野での実践AngularJS
エンタープライズ分野での実践AngularJS
Ayumi Goto
 
SpringMVCとmixer2で作るWebアプリのキホン 2013-01-24 Spring勉強会 #jsug
SpringMVCとmixer2で作るWebアプリのキホン 2013-01-24 Spring勉強会 #jsugSpringMVCとmixer2で作るWebアプリのキホン 2013-01-24 Spring勉強会 #jsug
SpringMVCとmixer2で作るWebアプリのキホン 2013-01-24 Spring勉強会 #jsug
Y Watanabe
 
Google App Engine for Java
Google App Engine for JavaGoogle App Engine for Java
Google App Engine for Java
Takuya Tsuchida
 
ASP.NET シングル ページ アプリケーション (SPA) 詳説
ASP.NET シングル ページ アプリケーション (SPA) 詳説ASP.NET シングル ページ アプリケーション (SPA) 詳説
ASP.NET シングル ページ アプリケーション (SPA) 詳説
Akira Inoue
 
Visual Studio 2012 Web 開発 ~ One ASP.NET から TypeScript まで ~
Visual Studio 2012 Web 開発 ~ One ASP.NET から TypeScript まで ~Visual Studio 2012 Web 開発 ~ One ASP.NET から TypeScript まで ~
Visual Studio 2012 Web 開発 ~ One ASP.NET から TypeScript まで ~
Akira Inoue
 
CategoLJについて
CategoLJについてCategoLJについて
CategoLJについて
Toshiaki Maki
 
node+socket.io+enchant.jsでチャットゲーを作る
node+socket.io+enchant.jsでチャットゲーを作るnode+socket.io+enchant.jsでチャットゲーを作る
node+socket.io+enchant.jsでチャットゲーを作る
Kiyoshi SATOH
 

Similar to Elasticsearchプラグインの作り方 (20)

C#勉強会 ~ C#9の新機能 ~
C#勉強会 ~ C#9の新機能 ~C#勉強会 ~ C#9の新機能 ~
C#勉強会 ~ C#9の新機能 ~
 
Elastic circle ci-co-webinar-20210127
Elastic circle ci-co-webinar-20210127Elastic circle ci-co-webinar-20210127
Elastic circle ci-co-webinar-20210127
 
基礎から見直す ASP.NET MVC の単体テスト自動化方法 ~ Windows Azure 関連もあるかも~
基礎から見直す ASP.NET MVC の単体テスト自動化方法 ~ Windows Azure 関連もあるかも~基礎から見直す ASP.NET MVC の単体テスト自動化方法 ~ Windows Azure 関連もあるかも~
基礎から見直す ASP.NET MVC の単体テスト自動化方法 ~ Windows Azure 関連もあるかも~
 
React.jsでクライアントサイドなWebアプリ入門
React.jsでクライアントサイドなWebアプリ入門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...Building asp.net core blazor and elasticsearch elasticsearch using visual stu...
Building asp.net core blazor and elasticsearch elasticsearch using visual stu...
 
エンタープライズ分野での実践AngularJS
エンタープライズ分野での実践AngularJSエンタープライズ分野での実践AngularJS
エンタープライズ分野での実践AngularJS
 
Ajax 応用
Ajax 応用Ajax 応用
Ajax 応用
 
OpenStack API
OpenStack APIOpenStack API
OpenStack API
 
SpringMVCとmixer2で作るWebアプリのキホン 2013-01-24 Spring勉強会 #jsug
SpringMVCとmixer2で作るWebアプリのキホン 2013-01-24 Spring勉強会 #jsugSpringMVCと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の話 Grails 2.0.0.M1の話
Grails 2.0.0.M1の話
 
Alfresco勉強会#36 alfresco 5でカスタムREST APIを作ってみよう
Alfresco勉強会#36 alfresco 5でカスタムREST APIを作ってみようAlfresco勉強会#36 alfresco 5でカスタムREST APIを作ってみよう
Alfresco勉強会#36 alfresco 5でカスタムREST APIを作ってみよう
 
Google App Engine for Java
Google App Engine for JavaGoogle App Engine for Java
Google App Engine for Java
 
Spring data-rest-and-spring-cloud-contract
Spring data-rest-and-spring-cloud-contractSpring data-rest-and-spring-cloud-contract
Spring data-rest-and-spring-cloud-contract
 
Renewed using elasticsearchonaspnet-core5
Renewed using elasticsearchonaspnet-core5Renewed using elasticsearchonaspnet-core5
Renewed using elasticsearchonaspnet-core5
 
ASP.NET シングル ページ アプリケーション (SPA) 詳説
ASP.NET シングル ページ アプリケーション (SPA) 詳説ASP.NET シングル ページ アプリケーション (SPA) 詳説
ASP.NET シングル ページ アプリケーション (SPA) 詳説
 
Visual Studio 2012 Web 開発 ~ One ASP.NET から TypeScript まで ~
Visual Studio 2012 Web 開発 ~ One ASP.NET から TypeScript まで ~Visual Studio 2012 Web 開発 ~ One ASP.NET から TypeScript まで ~
Visual Studio 2012 Web 開発 ~ One ASP.NET から TypeScript まで ~
 
イマドキの現場で使えるJavaライブラリ事情
イマドキの現場で使えるJavaライブラリ事情イマドキの現場で使えるJavaライブラリ事情
イマドキの現場で使えるJavaライブラリ事情
 
CategoLJについて
CategoLJについてCategoLJについて
CategoLJについて
 
Elastic Stack を網羅する ハンズオンワークショップを 作ってみた.pdf
Elastic Stack を網羅する ハンズオンワークショップを 作ってみた.pdfElastic Stack を網羅する ハンズオンワークショップを 作ってみた.pdf
Elastic Stack を網羅する ハンズオンワークショップを 作ってみた.pdf
 
node+socket.io+enchant.jsでチャットゲーを作る
node+socket.io+enchant.jsでチャットゲーを作るnode+socket.io+enchant.jsでチャットゲーを作る
node+socket.io+enchant.jsでチャットゲーを作る
 

More from Shinsuke Sugaya

Solrベースの全文検索サーバ Fess
Solrベースの全文検索サーバ FessSolrベースの全文検索サーバ Fess
Solrベースの全文検索サーバ Fess
Shinsuke Sugaya
 

More from Shinsuke Sugaya (11)

LastaFluteでKotlinをはじめよう
LastaFluteでKotlinをはじめようLastaFluteでKotlinをはじめよう
LastaFluteでKotlinをはじめよう
 
PredictionIOのPython対応計画
PredictionIOのPython対応計画PredictionIOのPython対応計画
PredictionIOのPython対応計画
 
PredictionIO構築入門
PredictionIO構築入門PredictionIO構築入門
PredictionIO構築入門
 
SolrとElasticsearchを比べてみよう
SolrとElasticsearchを比べてみようSolrとElasticsearchを比べてみよう
SolrとElasticsearchを比べてみよう
 
Elasticsearch Authプラグインでアクセスコントロール
Elasticsearch AuthプラグインでアクセスコントロールElasticsearch Authプラグインでアクセスコントロール
Elasticsearch Authプラグインでアクセスコントロール
 
DBFlute Mavenプラグインを用いてCRUD作成
DBFlute Mavenプラグインを用いてCRUD作成DBFlute Mavenプラグインを用いてCRUD作成
DBFlute Mavenプラグインを用いてCRUD作成
 
DBFluteを用いて開発されている全文検索システムFess
DBFluteを用いて開発されている全文検索システムFessDBFluteを用いて開発されている全文検索システムFess
DBFluteを用いて開発されている全文検索システムFess
 
elasticsearchプラグイン入門
elasticsearchプラグイン入門elasticsearchプラグイン入門
elasticsearchプラグイン入門
 
Solrベースの全文検索サーバ Fess
Solrベースの全文検索サーバ FessSolrベースの全文検索サーバ Fess
Solrベースの全文検索サーバ Fess
 
Sc2009autumn s2robot
Sc2009autumn s2robotSc2009autumn s2robot
Sc2009autumn s2robot
 
オフィスに1台!全文検索Fess
オフィスに1台!全文検索Fessオフィスに1台!全文検索Fess
オフィスに1台!全文検索Fess
 

Elasticsearchプラグインの作り方