インデックスの作成中に、次のものを使用できます。
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
とをどのように設定すればよいでしょうか。id
title
編集
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。 -
これはどのように行うことができますか?