1

Play アプリケーションで Elasticsearch Play モジュールを使用していますが、半分しか成功していません。ローカル/組み込みモードで構成して使用できます。ただし、クライアント モードで実行することはできません。

Play アプリケーションがホストされているのと同じボックスに Elasticsearch サービスをセットアップしました。アプリの構成に次を追加しました。

#エラスティック検索モジュール

elasticsearch.local=false
elasticsearch.client=localhost:9200

私はDEVモードで実行しています。リモートホストへの接続も試みましたが、成功しませんでした。どちらの場合も、アプリケーションに最初のリクエストを行うと、さまざまなモジュールのロードが開始され、elasticsearch サービスに接続しようとするとハングします。ここに私のログからのスニペットがあります:

[TIME: 2013-08-09 19:59:09] [LOG LEVEL: DEBUG]  MorphiaPlugin-1.2.12> reading configuration<BR>
[TIME: 2013-08-09 19:59:15] [LOG LEVEL: INFO]   Connected to memcached <BR>
[TIME: 2013-08-09 19:59:15] [LOG LEVEL: INFO]   Connecting Play! to Elastic Search in Client Mode<BR>
**[TIME: 2013-08-09 19:59:15]   [LOG LEVEL: INFO]   Transport Client - Host: localhost Port: 9200**

編集 ポート 9300 への接続が機能します。ただし、elasticsearch は、接続しようとするとすぐにjava.io.StreamCorruptedExceptionをスローします。スタック トレースのスニペットを次に示します。

[2013-08-14 09:44:29,405][WARN ][transport.netty] [Kl'rt] exception caught on transport layer [[id: 0x30ec6e1f, /192.168.10.126:45148 => /192.168.10.126:9300]], closing connection
java.io.StreamCorruptedException: invalid internal transport message format
    at org.elasticsearch.transport.netty.SizeHeaderFrameDecoder.decode(SizeHeaderFrameDecoder.java:27)
    at org.elasticsearch.common.netty.handler.codec.frame.FrameDecoder.callDecode(FrameDecoder.java:425)
    at org.elasticsearch.common.netty.handler.codec.frame.FrameDecoder.messageReceived(FrameDecoder.java:303)
4

1 に答える 1

0

まず、play2-elasticsearch モジュールを使用していますか? Play 2 より前の play-elasticsearch モジュールがありますが、play2-elasticsearch モジュールを参照していると想定しています。

play2-elasticsearch を使用している場合、elasticsearch.client="localhost: 9300 " を試しましたか? play2-elasticsearch の github リポジトリの README.md は、その例でポート 9300 を使用します。これは、http ://www.elasticsearch.org/guide/reference/modules/transport/ で説明されているように、Elasticsearch で使用されるトランスポート ポートです。

于 2013-08-13T20:24:01.347 に答える