Skip to content

Commit cd0d967

Browse files
author
Martin Spütz
committed
Added support for Elasticsearch 7.6.2
1 parent cdda20b commit cd0d967

13 files changed

+41
-32
lines changed

es/index_settings.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@
9292
"type": "length"
9393
},
9494
"preserving_word_delimiter": {
95-
"type": "word_delimiter",
95+
"type": "word_delimiter_graph",
9696
"preserve_original": "true"
9797
}
9898
}

es/mappings.json

-3
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,6 @@
11
{
22
"place": {
33
"dynamic": "false",
4-
"_all": {
5-
"enabled": false
6-
},
74
"_source": {
85
"excludes": [
96
"context.*"

es/modules/lang-painless/plugin-descriptor.properties

+2-2
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
description=An easy, safe and fast scripting language for Elasticsearch
2323
#
2424
# 'version': plugin's version
25-
version=5.5.0
25+
version=7.6.2
2626
#
2727
# 'name': the plugin name
2828
name=lang-painless
@@ -37,7 +37,7 @@ classname=org.elasticsearch.painless.PainlessPlugin
3737
java.version=1.8
3838
#
3939
# 'elasticsearch.version': version of elasticsearch compiled against
40-
elasticsearch.version=5.5.0
40+
elasticsearch.version=7.6.2
4141
### optional elements for plugins:
4242
#
4343
# 'has.native.controller': whether or not the plugin has a native controller

pom.xml

+10-5
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,10 @@
1717
<groupId>org.elasticsearch</groupId>
1818
<artifactId>jna</artifactId>
1919
</exclusion>
20+
<exclusion>
21+
<groupId>org.apache.logging.log4j</groupId>
22+
<artifactId>log4j-api</artifactId>
23+
</exclusion>
2024
</exclusions>
2125
</dependency>
2226
<dependency><!-- required by elasticsearch -->
@@ -38,7 +42,7 @@
3842
see https://github.com/elastic/elasticsearch/issues/13245 -->
3943
<groupId>org.elasticsearch</groupId>
4044
<artifactId>jna</artifactId>
41-
<version>4.4.0</version>
45+
<version>4.5.1</version>
4246
</dependency>
4347
<dependency>
4448
<groupId>postgresql</groupId>
@@ -229,7 +233,7 @@
229233
<artifactItem>
230234
<groupId>org.codelibs.elasticsearch.module</groupId>
231235
<artifactId>lang-painless</artifactId>
232-
<version>5.5.0</version>
236+
<version>7.6.2</version>
233237
<type>jar</type>
234238
<overWrite>false</overWrite>
235239
<outputDirectory>${project.build.directory}/es/modules/lang-painless</outputDirectory>
@@ -314,9 +318,10 @@
314318
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
315319
<maven.compiler.encoding>UTF-8</maven.compiler.encoding>
316320

317-
<elasticsearch.version>5.5.0</elasticsearch.version>
318-
<slf4j.version>1.7.25</slf4j.version>
319-
<log4j.version>2.8.2</log4j.version>
321+
<!-- <elasticsearch.version>5.5.0</elasticsearch.version> -->
322+
<elasticsearch.version>7.6.2</elasticsearch.version>
323+
<slf4j.version>1.7.30</slf4j.version>
324+
<log4j.version>2.13.2</log4j.version>
320325

321326
<additionalparam>-Xdoclint:none</additionalparam>
322327
</properties>

src/main/java/de/komoot/photon/JsonDumper.java

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package de.komoot.photon;
22

33
import lombok.extern.slf4j.Slf4j;
4+
import org.elasticsearch.common.Strings;
45

56
import java.io.FileNotFoundException;
67
import java.io.IOException;
@@ -25,7 +26,7 @@ public JsonDumper(String filename, String languages) throws FileNotFoundExceptio
2526
public void add(PhotonDoc doc) {
2627
try {
2728
writer.println("{\"index\": {}}");
28-
writer.println(Utils.convert(doc, this.languages).string());
29+
writer.println(Strings.toString(Utils.convert(doc, this.languages)));
2930
} catch (IOException e) {
3031
log.error("error writing json file", e);
3132
}

src/main/java/de/komoot/photon/elasticsearch/Importer.java

+6-2
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@
77
import org.elasticsearch.action.bulk.BulkResponse;
88
import org.elasticsearch.client.Client;
99
import org.elasticsearch.client.Requests;
10+
import org.elasticsearch.common.Strings;
11+
import org.elasticsearch.common.xcontent.XContentBuilder;
1012
import org.elasticsearch.search.builder.SearchSourceBuilder;
1113

1214
import java.io.IOException;
@@ -35,8 +37,10 @@ public Importer(Client esClient, String languages) {
3537
@Override
3638
public void add(PhotonDoc doc) {
3739
try {
40+
XContentBuilder builder = Utils.convert(doc, languages);
41+
3842
this.bulkRequest.add(this.esClient.prepareIndex(indexName, indexType).
39-
setSource(Utils.convert(doc, languages)).setId(doc.getUid()));
43+
setSource(builder).setId(doc.getUid()));
4044
} catch (IOException e) {
4145
log.error("could not bulk add document " + doc.getUid(), e);
4246
return;
@@ -65,6 +69,6 @@ public void finish() {
6569

6670
public long count() {
6771
return this.esClient.search(Requests.searchRequest(indexName).types(indexType).source(SearchSourceBuilder.searchSource().size(0))).actionGet().getHits()
68-
.getTotalHits();
72+
.getTotalHits().value;
6973
}
7074
}

src/main/java/de/komoot/photon/elasticsearch/Server.java

+13-10
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,9 @@
77
import org.elasticsearch.client.Client;
88
import org.elasticsearch.client.transport.TransportClient;
99
import org.elasticsearch.common.settings.Settings;
10-
import org.elasticsearch.common.transport.InetSocketTransportAddress;
10+
import org.elasticsearch.common.transport.TransportAddress;
1111
import org.elasticsearch.common.xcontent.XContentType;
12+
import org.elasticsearch.env.Environment;
1213
import org.elasticsearch.index.IndexNotFoundException;
1314
import org.elasticsearch.node.InternalSettingsPreparer;
1415
import org.elasticsearch.node.Node;
@@ -27,10 +28,7 @@
2728
import java.net.URL;
2829
import java.nio.file.Files;
2930
import java.nio.file.StandardCopyOption;
30-
import java.util.Arrays;
31-
import java.util.Collection;
32-
import java.util.LinkedList;
33-
import java.util.List;
31+
import java.util.*;
3432

3533
/**
3634
* Helper class to start/stop elasticsearch node and get elasticsearch clients
@@ -54,8 +52,8 @@ public class Server {
5452
private Integer shards = null;
5553

5654
protected static class MyNode extends Node {
57-
public MyNode(Settings preparedSettings, Collection<Class<? extends Plugin>> classpathPlugins) {
58-
super(InternalSettingsPreparer.prepareEnvironment(preparedSettings, null), classpathPlugins);
55+
public MyNode(Environment environment) {
56+
super(environment);
5957
}
6058
}
6159

@@ -92,9 +90,9 @@ public Server start() {
9290
if (index >= 0) {
9391
int port = Integer.parseInt(tAddr.substring(index + 1));
9492
String addrStr = tAddr.substring(0, index);
95-
trClient.addTransportAddress(new InetSocketTransportAddress(new InetSocketAddress(addrStr, port)));
93+
trClient.addTransportAddress(new TransportAddress(new InetSocketAddress(addrStr, port)));
9694
} else {
97-
trClient.addTransportAddress(new InetSocketTransportAddress(new InetSocketAddress(tAddr, 9300)));
95+
trClient.addTransportAddress(new TransportAddress(new InetSocketAddress(tAddr, 9300)));
9896
}
9997
}
10098

@@ -107,9 +105,14 @@ public Server start() {
107105
try {
108106
sBuilder.put("transport.type", "netty4").put("http.type", "netty4").put("http.enabled", "true");
109107
Settings settings = sBuilder.build();
108+
/*
110109
Collection<Class<? extends Plugin>> lList = new LinkedList<>();
111110
lList.add(Netty4Plugin.class);
112-
esNode = new MyNode(settings, lList);
111+
*/
112+
113+
Environment environment = new Environment(settings, null);
114+
esNode = new Node(environment);
115+
//esNode = new MyNode(settings, lList);
113116
esNode.start();
114117

115118
log.info("started elastic search node");

src/main/java/de/komoot/photon/query/PhotonQueryBuilder.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
import com.vividsolutions.jts.geom.Envelope;
66
import com.vividsolutions.jts.geom.Point;
77
import org.elasticsearch.common.lucene.search.function.CombineFunction;
8-
import org.elasticsearch.common.lucene.search.function.FiltersFunctionScoreQuery.ScoreMode;
8+
import org.elasticsearch.common.lucene.search.function.FunctionScoreQuery.ScoreMode;
99
import org.elasticsearch.common.unit.Fuzziness;
1010
import org.elasticsearch.index.query.*;
1111
import org.elasticsearch.index.query.functionscore.FunctionScoreQueryBuilder;

src/main/java/de/komoot/photon/searcher/AbstractPhotonRequestHandler.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ public List<JSONObject> handle(R photonRequest) {
2626
int limit = photonRequest.getLimit();
2727
int extLimit = limit > 1 ? (int) Math.round(photonRequest.getLimit() * 1.5) : 1;
2828
SearchResponse results = elasticsearchSearcher.search(queryBuilder.buildQuery(), extLimit);
29-
if (results.getHits().getTotalHits() == 0) {
29+
if (results.getHits().getTotalHits().value == 0L) {
3030
results = elasticsearchSearcher.search(queryBuilder.withLenientMatch().buildQuery(), extLimit);
3131
}
3232
List<JSONObject> resultJsonObjects = new ConvertToJson(photonRequest.getLanguage()).convert(results);

src/main/java/de/komoot/photon/searcher/BaseElasticsearchSearcher.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ public BaseElasticsearchSearcher(Client client) {
2121
public SearchResponse search(QueryBuilder queryBuilder, Integer limit) {
2222
TimeValue timeout = TimeValue.timeValueSeconds(7);
2323
return client.prepareSearch("photon").
24-
setSearchType(SearchType.QUERY_AND_FETCH).
24+
setSearchType(SearchType.QUERY_THEN_FETCH).
2525
setQuery(queryBuilder).
2626
setSize(limit).
2727
setTimeout(timeout).

src/main/java/de/komoot/photon/searcher/ReverseElasticsearchSearcher.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ public SearchResponse search(QueryBuilder queryBuilder, Integer limit, Point loc
2626
Boolean locationDistanceSort) {
2727
TimeValue timeout = TimeValue.timeValueSeconds(7);
2828

29-
SearchRequestBuilder builder = client.prepareSearch("photon").setSearchType(SearchType.QUERY_AND_FETCH)
29+
SearchRequestBuilder builder = client.prepareSearch("photon").setSearchType(SearchType.QUERY_THEN_FETCH)
3030
.setQuery(queryBuilder).setSize(limit).setTimeout(timeout);
3131

3232
if (locationDistanceSort)

src/main/java/de/komoot/photon/utils/ConvertToJson.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -28,10 +28,10 @@ public ConvertToJson(String lang) {
2828

2929
@Override
3030
public List<JSONObject> convert(SearchResponse searchResponse) {
31-
SearchHit[] hits = searchResponse.getHits().hits();
31+
SearchHit[] hits = searchResponse.getHits().getHits();
3232
final List<JSONObject> list = Lists.newArrayListWithExpectedSize(hits.length);
3333
for (SearchHit hit : hits) {
34-
final Map<String, Object> source = hit.getSource();
34+
final Map<String, Object> source = hit.getSourceAsMap();
3535

3636
final JSONObject feature = new JSONObject();
3737
feature.put(Constants.TYPE, Constants.FEATURE);

src/main/java/de/komoot/photon/utils/QueryToJson.java

+1-2
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,7 @@ public class QueryToJson implements OneWayConverter<QueryBuilder, String> {
1717
@Override
1818
public String convert(QueryBuilder anItem) {
1919
try {
20-
BytesReference bytes = anItem.toXContent(JsonXContent.contentBuilder(), new ToXContent.MapParams(null))
21-
.bytes();
20+
BytesReference bytes = BytesReference.bytes(anItem.toXContent(JsonXContent.contentBuilder(), new ToXContent.MapParams(null)));
2221

2322
return bytes.utf8ToString();
2423
} catch (IOException e) {

0 commit comments

Comments
 (0)