Skip to content

Commit 033a496

Browse files
author
Satendra kumar
committed
Added Ingest, delete services
1 parent c6bce41 commit 033a496

File tree

5 files changed

+114
-18
lines changed

5 files changed

+114
-18
lines changed

pom.xml

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,10 @@
22
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
33
<modelVersion>4.0.0</modelVersion>
44
<groupId>com.es.app</groupId>
5-
<artifactId>es-java-client-tutorial</artifactId>
5+
<artifactId>es-java-client-sample</artifactId>
66
<packaging>jar</packaging>
7-
<version>1.0-SNAPSHOT</version>
8-
<name>my-app</name>
7+
<version>1.0</version>
8+
<name>es-java-client-sample</name>
99
<url>http://maven.apache.org</url>
1010
<dependencies>
1111
<dependency>
@@ -19,6 +19,11 @@
1919
<version>3.8.1</version>
2020
<scope>test</scope>
2121
</dependency>
22+
<dependency>
23+
<groupId>org.elasticsearch.plugin</groupId>
24+
<artifactId>delete-by-query</artifactId>
25+
<version>2.3.2</version>
26+
</dependency>
2227
</dependencies>
2328
<build>
2429
<plugins>

src/main/java/com/es/app/App.java

Lines changed: 38 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
11
package com.es.app;
22

33

4-
import com.es.util.ESManager;
54
import com.es.service.CountService;
65
import com.es.service.DataService;
6+
import com.es.service.DeleteService;
7+
import com.es.service.IngestService;
8+
import com.es.util.ESManager;
79
import org.elasticsearch.client.Client;
810

911

@@ -15,6 +17,8 @@ public static void main(String[] args) {
1517

1618
CountService countService = new CountService(client);
1719
DataService dataService = new DataService(client);
20+
IngestService ingestService = new IngestService(client);
21+
DeleteService deleteService = new DeleteService(client);
1822

1923
//count
2024
System.out.println("\ngetMatchAllQueryCount from ES::: " + countService.getMatchAllQueryCount());
@@ -23,21 +27,41 @@ public static void main(String[] args) {
2327

2428

2529
// Data
26-
System.out.println("\ngetMatchAllQueryData from ES::: " );
27-
dataService.getMatchAllQueryData().forEach(item->System.out.println(item));
28-
29-
System.out.println("\ngetBoolQueryData from ES::: " );
30-
dataService.getBoolQueryData().forEach(item->System.out.println(item));
31-
32-
System.out.println("\ngetPhraseQueryData from ES::: " );
33-
dataService.getPhraseQueryData().forEach(item->System.out.println(item));
34-
30+
System.out.println("\ngetMatchAllQueryData from ES::: ");
31+
dataService.getMatchAllQueryData().forEach(item -> System.out.println(item));
32+
33+
System.out.println("\ngetBoolQueryData from ES::: ");
34+
dataService.getBoolQueryData().forEach(item -> System.out.println(item));
35+
36+
System.out.println("\ngetPhraseQueryData from ES::: ");
37+
dataService.getPhraseQueryData().forEach(item -> System.out.println(item));
38+
39+
//Ingest
40+
String json1 = "{" +
41+
"\"name\":\"skyji\"," +
42+
"\"job\":\"Admin\"," +
43+
"\"location\":\"India\"" +
44+
"}";
45+
46+
String json2 = "{" +
47+
"\"name\":\"jom\"," +
48+
"\"job\":\"assiant\"," +
49+
"\"location\":\"Meana\"" +
50+
"}";
51+
// ingest single record
52+
// System.out.println("\nIngestService response::: " +ingestService.ingest("tweet",json) );
53+
54+
// ingest batch of records
55+
// System.out.println("\nIngestService response::: " + ingestService.ingest("tweet", Arrays.asList(json1, json2)));
56+
57+
58+
// Delete
59+
// delete one record by id
60+
//System.out.println("delete by id " + deleteService.delete("AVSMh1LBWlqOklhqtVNs"));
61+
//delete record by query
62+
System.out.println("delete by query " + deleteService.deleteByQuery("satendra"));
3563
client.close();
3664

37-
38-
39-
4065
}
4166

42-
4367
}
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
package com.es.service;
2+
3+
4+
import org.elasticsearch.action.deletebyquery.DeleteByQueryAction;
5+
import org.elasticsearch.action.deletebyquery.DeleteByQueryRequestBuilder;
6+
import org.elasticsearch.client.Client;
7+
import org.elasticsearch.index.query.QueryBuilders;
8+
9+
/***
10+
* add delete by query plugin to Elastisearch
11+
* $ bin/plugin install delete-by-query
12+
*/
13+
public class DeleteService {
14+
15+
16+
Client client;
17+
18+
public DeleteService(Client client) {
19+
this.client = client;
20+
}
21+
22+
23+
public boolean delete(String id) {
24+
return client.prepareDelete("test", "tweet", id).get().isFound();
25+
}
26+
27+
public long deleteByQuery(String name) {
28+
return new DeleteByQueryRequestBuilder(client, DeleteByQueryAction.INSTANCE).setQuery(QueryBuilders.termQuery("name", name))
29+
.execute().actionGet().getTotalDeleted();
30+
}
31+
}
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
package com.es.service;
2+
3+
4+
import org.elasticsearch.action.bulk.BulkRequestBuilder;
5+
import org.elasticsearch.client.Client;
6+
7+
import java.util.List;
8+
9+
public class IngestService {
10+
11+
Client client;
12+
13+
public IngestService(Client client) {
14+
this.client = client;
15+
}
16+
17+
public boolean ingest(String type, String doc) {
18+
return client.prepareIndex("test", type).setSource(doc).get().isCreated();
19+
}
20+
21+
22+
public boolean ingest(String type, List<String> docs) {
23+
BulkRequestBuilder bulkRequest = client.prepareBulk();
24+
docs.forEach(doc -> bulkRequest.add(client.prepareIndex("test", type).setSource(doc)));
25+
return bulkRequest.get().hasFailures();
26+
27+
}
28+
29+
30+
}

src/main/java/com/es/util/ESManager.java

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,19 +3,25 @@
33

44
import org.elasticsearch.client.Client;
55
import org.elasticsearch.client.transport.TransportClient;
6+
import org.elasticsearch.common.settings.Settings;
67
import org.elasticsearch.common.transport.InetSocketTransportAddress;
8+
import org.elasticsearch.plugin.deletebyquery.DeleteByQueryPlugin;
79

810
import java.net.InetAddress;
911
import java.util.Optional;
1012

1113
public class ESManager {
1214

15+
16+
1317
public Optional<Client> getClient(String host, int port) {
1418
try {
15-
Client client = TransportClient.builder().build()
19+
Settings.Builder setting =Settings.builder().put("client.transport.sniff", false);
20+
TransportClient client = TransportClient.builder().settings(setting).addPlugin(DeleteByQueryPlugin.class).build()
1621
.addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName(host), port));
1722
return Optional.of(client);
1823
} catch (Exception e) {
24+
e.printStackTrace();
1925
return Optional.empty();
2026
}
2127
}

0 commit comments

Comments
 (0)