1

私はJESTアクセスElasticsearchに使用していますが、これまでのところ正常に動作しています。アプリケーションからインデックス/タイプ マッピングを管理したいので、JESTWeb サイトの例に従いましたが、次のようなエラーが発生します。

RootObjectMapper.Builder rootObjectMapperBuilder = new RootObjectMapper.Builder("person_mapping").add(
                    new StringFieldMapper.Builder("lastname").store(true));
Builder builder = new DocumentMapper.Builder("indexName", null, rootObjectMapperBuilder);

で始まる最後の行でエラーが発生しnew DocumentMapper.Builder ...ます。むしろ内部的なものですが、これを修正する方法がわかりません。

java.lang.NullPointerException: null
    at org.elasticsearch.Version.indexCreated(Version.java:481) ~[elasticsearch-1.7.2.jar:na]
    at org.elasticsearch.index.mapper.core.NumberFieldMapper.<init>(NumberFieldMapper.java:206) ~[elasticsearch-1.7.2.jar:na]
    at org.elasticsearch.index.mapper.core.IntegerFieldMapper.<init>(IntegerFieldMapper.java:132) ~[elasticsearch-1.7.2.jar:na]
    at org.elasticsearch.index.mapper.internal.SizeFieldMapper.<init>(SizeFieldMapper.java:104) ~[elasticsearch-1.7.2.jar:na]
    at org.elasticsearch.index.mapper.internal.SizeFieldMapper.<init>(SizeFieldMapper.java:99) ~[elasticsearch-1.7.2.jar:na]
    at org.elasticsearch.index.mapper.DocumentMapper$Builder.<init>(DocumentMapper.java:182) ~[elasticsearch-1.7.2.jar:na]

Elasticsearchwithのマッピングを維持する実際の例はありJESTますか?

編集#1:統合テストは私を助けていません:-(

JESTここでマッピングに焦点を当てた統合テストを見てきましたhttps://github.com/searchbox-io/Jest/blob/master/jest/src/test/java/io/searchbox/indices/PutMappingIntegrationTest.java#L46そしてそれはありませんヘルプ。どこから来たのかわかりclient()ません...他の検索に基づいて、ネイティブのJAVA APIからの何かのようですが、そうではありませんRESTか? それを使用する方法または client() がどこから来たのか考えていますか?

GetSettingsResponse getSettingsResponse =
                client().admin().indices().getSettings(new GetSettingsRequest().indices(INDEX_NAME)).actionGet();
DocumentMapper documentMapper = new DocumentMapper
                    .Builder(INDEX_NAME, getSettingsResponse.getIndexToSettings().get(INDEX_NAME), rootObjectMapperBuilder).build(null);

解決しました!

DocumentMapper.BuilderSettings パラメータが必要です。ここではヌルは機能しません。設定はこのように手動で作成できます

Settings indexSettings = ImmutableSettings.settingsBuilder()
                .put("number_of_shards", 1)
                .put("number_of_replicas", 1)
                .put("index.version.created",99999)
                .build();       
Builder builder = new DocumentMapper.Builder("indexName",indexSettings, rootObjectMapperBuilder);

いいえ、null ポインター エラーは表示されません。

4

0 に答える 0