Since the development of the article, mainly in code-based, auxiliary some instructions. All of the content is the code that should actually be validated.
Introduction of header Files:
?
12345678910111213141516171819202122 |
import
static
org.elasticsearch.node.NodeBuilder.nodeBuilder;
import
java.io.IOException;
import
java.net.InetAddress;
import
java.util.Date;
import java.util.Map;
import
java.util.Set;
import
org.elasticsearch.action.admin.cluster.health.ClusterHealthResponse;
import
org.elasticsearch.action.admin.indices.create.CreateIndexRequestBuilder;
import
org.elasticsearch.action.admin.indices.create.CreateIndexResponse;
import
org.elasticsearch.action.index.IndexResponse;
import org.elasticsearch.client.Client;
import
org.elasticsearch.client.ClusterAdminClient;
import
org.elasticsearch.client.transport.TransportClient;
import
org.elasticsearch.cluster.health.ClusterIndexHealth;
import
org.elasticsearch.common.settings.Settings;
import
org.elasticsearch.common.transport.InetSocketTransportAddress;
import org.elasticsearch.common.xcontent.XContentBuilder;
import
org.elasticsearch.common.xcontent.XContentFactory;
import
org.elasticsearch.node.Node;
import
static
org.elasticsearch.common.xcontent.XContentFactory.*;
|
Create an index?
123456789101112131415161718192021222324252627282930 |
XContentBuilder mapping = XContentFactory.jsonBuilder()
.startObject()
.startObject(
"settings"
)
.field(
"number_of_shards"
,
1
)
//设置分片数量
.field(
"number_of_replicas"
,
0
)
//设置副本数量
.endObject()
.endObject()
.startObject()
.startObject(type)
//type名称
.startObject(
"properties"
)
//下面是设置文档列属性。
.startObject(
"type"
).field(
"type"
,
"string"
).field(
"store"
,
"yes"
).endObject()
.startObject(
"eventCount"
).field(
"type"
,
"long"
).field(
"store"
,
"yes"
).endObject()
.startObject(
"eventDate"
).field(
"type"
,
"date"
).field(
"format"
,
"dateOptionalTime"
).field(
"store"
,
"yes"
).endObject()
.startObject(
"message"
).field(
"type"
,
"string"
).field(
"index"
,
"not_analyzed"
).field(
"store"
,
"yes"
).endObject()
.endObject()
.endObject()
.endObject();
CreateIndexRequestBuilder cirb = client
.admin()
.indices()
.prepareCreate(indexName)
//index名称
.setSource(mapping);
CreateIndexResponse response = cirb.execute().actionGet();
if
(response.isAcknowledged()) {
System.out.println(
"Index created."
);
}
else
{
System.err.println(
"Index creation failed."
);
}
|
Add a document?
123456789101112 |
IndexResponse response = client
.prepareIndex(indexName, type,
"1"
)
.setSource(
//这里可以直接用json字符串
jsonBuilder().startObject()
.field(
"type"
,
"syslog"
)
.field(
"eventCount"
,
1
)
.field(
"eventDate"
,
new
Date())
.field(
"message"
,
"secilog insert doc test"
)
.endObject()).get();
System.out.println(
"index:"
+response.getIndex()
+
" insert doc id:"
+response.getId()
+
" result:"
+response.isCreated());
|
Querying documents?
123456 |
GetResponse response = client.prepareGet( "secilog" , "log" , "1" ).get(); String source = response.getSource().toString(); long version = response.getVersion(); String indexName = response.getIndex(); String type = response.getType(); String id = response.getId(); |
This article by Saikesaisi Pharmaceutical Lande (Secisland) original, reprint please indicate the author and source.
Modifying a document
There are two ways to modify a document, one is to modify it directly, and the other is to modify if the document does not exist.
The first type of code
?
123456789 |
UpdateRequest updateRequest =
new
UpdateRequest();
updateRequest.index(indexName);
updateRequest.type(type);
updateRequest.id(
"1"
);
updateRequest.doc(jsonBuilder()
.startObject()
.field(
"type"
,
"file"
)
.endObject());
client.update(updateRequest).get();
|
The second type of code:
?
123456789101112131415 |
IndexRequest indexRequest =
new
IndexRequest(indexName, type,
"3"
)
.source(jsonBuilder()
.startObject()
.field(
"type"
,
"syslog"
)
.field(
"eventCount"
,
2
)
.field(
"eventDate"
,
new
Date())
.field(
"message"
,
"secilog insert doc test"
)
.endObject());
UpdateRequest updateRequest =
new
UpdateRequest(indexName, type,
"3"
)
.doc(jsonBuilder()
.startObject()
.field(
"type"
,
"file"
)
.endObject())
.upsert(indexRequest);
client.update(updateRequest).get();
|
Delete a document?
12 |
DeleteResponse dresponse = client.prepareDelete( "secilog" , "log" , "4" ).get(); boolean isFound = dresponse.isFound(); //文档存在返回true,不存在返回false; |
Delete index?
12 |
DeleteIndexRequest delete = new DeleteIndexRequest( "secilog" ); client.admin().indices().delete(delete); |
Lande (Secisland) will gradually analyze the features of the latest version of Elasticsearch, and look forward to it. Also welcome to join the Secisland public number for attention.
Elasticsearch Simple example of Java additions and deletions