0

インデックスの作成中に、次のものを使用できます。

CreateIndexResponse createIndexRequestBuilder = client().admin().indices()
                .prepareCreate(INDEX_NAME)
                .setSource(XContentFactory.jsonBuilder()
                        .startObject()
                        .field("title", "My Title 1")
                        .endObject()
                )
                .setSettings(
                        Settings.settingsBuilder()
                                .put("index.number_of_shards", 2)
                                .put("index.number_of_replicas", 2)
                )
                .execute()
                .actionGet();

しかし、フィールドが 1 つしかないこの 1 つのソース オブジェクトの indextypeとをどのように設定すればよいでしょうか。idtitle

編集

2 つのドキュメントを追加するように推奨されるように変更すると、IndexAlreadyExistsExceptionエラーが発生し続けます。

CreateIndexResponse createIndexRequestBuilder = client().admin().indices()
        .prepareCreate(INDEX_NAME)
        .setSettings(
                Settings.settingsBuilder()
                        .put("index.number_of_shards", 2)
                        .put("index.number_of_replicas", 2)
        )
        .execute()
        .actionGet();

IndexResponse response1 = client().prepareIndex(INDEX_NAME, BOOK_TYPE_NAME, "id1")
        .setSource(XContentFactory.jsonBuilder()
                .startObject()
                .field("title", "Clean COde")
                .endObject()
        )
        .setRouting("route1")
        .get();
IndexResponse response2 = client().prepareIndex(INDEX_NAME, BOOK_TYPE_NAME, "id2")
        .setSource(XContentFactory.jsonBuilder()
                .startObject()
                .field("title", "Learn Scala")
                .endObject()
        )
        .setRouting("route2")
        .get();

prepareCreateとのprepareIndex両方がインデックスを作成しているようです。ただし、必要なすべての設定を設定することは許可されていません:

  • シャード番号
  • レプリカ番号
  • 索引名
  • 索引タイプ
  • 新しいドキュメント ID。
  • -

これはどのように行うことができますか?

4

1 に答える 1