-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathelasticSearch.patch
More file actions
139 lines (139 loc) · 4.5 KB
/
Copy pathelasticSearch.patch
File metadata and controls
139 lines (139 loc) · 4.5 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
Index: src/main/java/com/handson/searchengine/model/UrlSearchDoc.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
diff --git a/src/main/java/com/handson/searchengine/model/UrlSearchDoc.java b/src/main/java/com/handson/searchengine/model/UrlSearchDoc.java
new file mode 100644
--- /dev/null (date 1644419920632)
+++ b/src/main/java/com/handson/searchengine/model/UrlSearchDoc.java (date 1644419920632)
@@ -0,0 +1,72 @@
+package com.handson.searchengine.model;
+
+import java.util.Objects;
+
+public class UrlSearchDoc {
+ private String url;
+ private String baseUrl;
+ private String content;
+ private int level;
+ private String crawlId;
+
+ public static UrlSearchDoc of(String crawlId, String content, String url, String baseUrl, int level) {
+ UrlSearchDoc res = new UrlSearchDoc();
+ res.crawlId = crawlId;
+ res.url = url;
+ res.baseUrl = baseUrl;
+ res.content = content;
+ res.level = level;
+ return res;
+ }
+
+ @Override
+ public String toString() {
+ return "UrlSearchDoc{" +
+ "crawlId='" + crawlId + '\'' +
+ ", url='" + url + '\'' +
+ ", baseUrl='" + baseUrl + '\'' +
+ ", content='" + content + '\'' +
+ ", level=" + level +
+ '}';
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) return true;
+ if (o == null || getClass() != o.getClass()) return false;
+ UrlSearchDoc that = (UrlSearchDoc) o;
+ return level == that.level &&
+ Objects.equals(url, that.url) &&
+ Objects.equals(baseUrl, that.baseUrl) &&
+ Objects.equals(content, that.content);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(url, baseUrl, content, level);
+ }
+
+ public String getCrawlId() {
+ return crawlId;
+ }
+
+ public void setCrawlId(String crawlId) {
+ this.crawlId = crawlId;
+ }
+
+ public String getUrl() {
+ return url;
+ }
+
+ public String getBaseUrl() {
+ return baseUrl;
+ }
+
+ public String getContent() {
+ return content;
+ }
+
+ public int getLevel() {
+ return level;
+ }
+}
Index: src/main/java/com/handson/searchengine/util/ElasticSearch.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
diff --git a/src/main/java/com/handson/searchengine/util/ElasticSearch.java b/src/main/java/com/handson/searchengine/util/ElasticSearch.java
new file mode 100644
--- /dev/null (date 1644436927536)
+++ b/src/main/java/com/handson/searchengine/util/ElasticSearch.java (date 1644436927536)
@@ -0,0 +1,47 @@
+package com.handson.searchengine.util;
+
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.handson.searchengine.model.UrlSearchDoc;
+import okhttp3.*;
+import org.apache.tomcat.util.codec.binary.Base64;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.http.HttpHeaders;
+import org.springframework.stereotype.Component;
+
+
+
+@Component
+public class ElasticSearch {
+ OkHttpClient client = new OkHttpClient();
+
+ @Value("${elasticsearch.base.url}")
+ private String ELASTIC_SEARCH_URL;
+ @Value("${elasticsearch.key}")
+ private String API_KEY;
+ @Value("${elasticsearch.index}")
+ private String index;
+ @Autowired
+ ObjectMapper om;
+
+
+ public void addData(UrlSearchDoc doc) {
+ try {
+ String auth = new String(Base64.encodeBase64(API_KEY.getBytes()));
+ String content = om.writeValueAsString(doc);
+ MediaType mediaType = MediaType.parse("application/json");
+ RequestBody body = RequestBody.create(mediaType, content);
+ Request request = new Request.Builder()
+ .url(ELASTIC_SEARCH_URL + "/"+ index + "/doc")
+ .method("POST", body)
+ .addHeader("Content-Type", "application/json")
+ .addHeader(HttpHeaders.AUTHORIZATION, "Basic " + auth)
+ .build();
+ Response response = client.newCall(request).execute();
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+}