Skip to content

Instantly share code, notes, and snippets.

@scova0731
Last active October 8, 2015 01:49
Show Gist options
  • Save scova0731/fb6c5bb04fd4cd928ef9 to your computer and use it in GitHub Desktop.
Save scova0731/fb6c5bb04fd4cd928ef9 to your computer and use it in GitHub Desktop.
Scala 版 elasticsearch クライアント比較 (2015/2版)

調査先は、公式サイトのドキュメントからおよび竹添・島本さん。

候補

  • Scala力が発揮できない(コレクション、Future/Promise)
  • クライアントだけでなくサーバ実装も全部入り(以下の依存したライブラリも同じ状況)
  • ネイティブアクセス(elasticsearch://)
  • elasticsearch本体がベース
  • 曰く、Typesafe concise DSL, Reactive / Scala futures, Scala collections, Leverages Java library, SQL-style requests とのこと
  • Jacksonは必要な場合だけ依存関係に追加
  • ネイティブアクセス(elasticsearch://)
  • elasticsearch本体は利用せず。通信はdispatch。ヘルパーでscala-uriを利用
  • 非常にシンプルで操作毎のHTTP通信部分があるのみ
  • 名前は盆栽にかけている?
  • HTTPアクセス
  • ベースはelasticsearch本体のみ
  • 非常にシンプルで通信をFutureでラップしているだけ
  • ネイティブアクセス(elasticsearch://)
  • elasticsearch本体がベース
  • 残念ながら0.90でメンテが止まっている
  • BizReach内部で利用されているクライアント
  • 兄弟ツールのelasticsearch4s-genですでにあるインデクスから case class をリバースできるのがポイント
  • ベースは純正Javaクライアント、通信はasync-http-client、JSONはJackson
  • HTTPでアクセス

考察

  • プロトコルがネイティブかHTTPかは大きな判断箇所
  • アクセスの種類が様々で多くのコードを書くのであればSQLらいくなDSLが充実しているelastic4sがよいかも
  • インデクス開発ドリブンで後からクライアント側を開発する状況なら、リバースできるelasticsearch4sがよいかも
  • どれにも当てはまらないなら、wabisabiesclientを見て自作すれば良いかも
@xuwei-k
Copy link

xuwei-k commented Oct 8, 2015

新しいの出てきたので貼っておきますね

https://github.com/runarorama/schnauzer

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment