Skip to content

Commit 8b21da9

Browse files
author
Lior Knaany
committed
Supporting Elasticsearch version 5.6.0
1 parent 8c86b46 commit 8b21da9

File tree

5 files changed

+25
-37
lines changed

5 files changed

+25
-37
lines changed

README.md

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,10 @@ give it a try.
1010

1111

1212
## Elasticsearch version
13-
* Currently designed for elasticsearch 5.2.2. stay tuned for ES 5.5
14-
13+
* Currently designed for Elasticsearch 5.6.0.
14+
* for Elasticsearch 5.2.2 use branch `es-5.2.2`
15+
* for Elasticsearch 2.4.4 use branch `es-2.4.4`
16+
1517

1618
## Maven configuration
1719
* Clone the project

pom.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
<name>elasticsearch-binary-vector-scoring</name>
88
<groupId>com.liorkn.elasticsearch</groupId>
99
<artifactId>elasticsearch-binary-vector-scoring</artifactId>
10-
<version>5.2.2</version>
10+
<version>5.6.0</version>
1111
<description>ElasticSearch Plugin for Binary Vector Scoring</description>
1212

1313
<licenses>
@@ -27,7 +27,7 @@
2727
<elasticsearch.license.headerDefinition>${project.basedir}/src/main/resources/license-check/license_header_definition.xml</elasticsearch.license.headerDefinition>
2828

2929
<tests.ifNoTests>warn</tests.ifNoTests>
30-
<elasticsearch.version>5.2.2</elasticsearch.version>
30+
<elasticsearch.version>5.6.0</elasticsearch.version>
3131
</properties>
3232

3333

src/main/java/com/liorkn/elasticsearch/plugin/VectorScoringPlugin.java

Lines changed: 2 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -13,16 +13,11 @@
1313
*/
1414
package com.liorkn.elasticsearch.plugin;
1515

16-
import com.liorkn.elasticsearch.script.VectorScoreScript;
1716
import com.liorkn.elasticsearch.service.VectorScoringScriptEngineService;
1817

19-
import java.util.Collections;
20-
import java.util.List;
21-
2218
import org.elasticsearch.common.settings.Settings;
2319
import org.elasticsearch.plugins.Plugin;
2420
import org.elasticsearch.plugins.ScriptPlugin;
25-
import org.elasticsearch.script.NativeScriptFactory;
2621
import org.elasticsearch.script.ScriptEngineService;
2722

2823
/**
@@ -31,14 +26,8 @@
3126
* src/main/resources/es-plugin.properties file that points to this class.
3227
*/
3328
public final class VectorScoringPlugin extends Plugin implements ScriptPlugin {
34-
35-
@Override
36-
public List<NativeScriptFactory> getNativeScripts() {
37-
return Collections.singletonList(new VectorScoreScript.Factory());
38-
}
39-
40-
@Override
41-
public ScriptEngineService getScriptEngineService(Settings settings) {
29+
30+
public final ScriptEngineService getScriptEngineService(Settings settings) {
4231
return new VectorScoringScriptEngineService(settings);
4332
}
4433
}

src/main/java/com/liorkn/elasticsearch/script/VectorScoreScript.java

Lines changed: 4 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -14,14 +14,12 @@
1414

1515
package com.liorkn.elasticsearch.script;
1616

17-
import com.liorkn.elasticsearch.plugin.VectorScoringPlugin;
1817
import org.apache.lucene.index.BinaryDocValues;
1918
import org.apache.lucene.search.Scorer;
2019
import org.apache.lucene.store.ByteArrayDataInput;
2120
import org.elasticsearch.common.Nullable;
2221
import org.elasticsearch.script.ExecutableScript;
2322
import org.elasticsearch.script.LeafSearchScript;
24-
import org.elasticsearch.script.NativeScriptFactory;
2523
import org.elasticsearch.script.ScriptException;
2624

2725
import java.nio.ByteBuffer;
@@ -87,7 +85,7 @@ public void setBinaryEmbeddingReader(BinaryDocValues binaryEmbeddingReader) {
8785
* {@link VectorScoringPlugin#onModule(org.elasticsearch.script.ScriptModule)}
8886
* method when the plugin is loaded.
8987
*/
90-
public static class Factory implements NativeScriptFactory {
88+
public static class Factory {
9189

9290
/**
9391
* This method is called for every search on every shard.
@@ -96,7 +94,6 @@ public static class Factory implements NativeScriptFactory {
9694
* list of script parameters passed with the query
9795
* @return new native script
9896
*/
99-
@Override
10097
public ExecutableScript newScript(@Nullable Map<String, Object> params) throws ScriptException {
10198
return new VectorScoreScript(params);
10299
}
@@ -106,24 +103,19 @@ public ExecutableScript newScript(@Nullable Map<String, Object> params) throws S
106103
*
107104
* @return {@code true} if scores are needed.
108105
*/
109-
@Override
110106
public boolean needsScores() {
111107
return false;
112108
}
113-
114-
@Override
115-
public String getName() {
116-
return SCRIPT_NAME;
117-
}
109+
118110
}
119-
111+
120112

121113
/**
122114
* Init
123115
* @param params index that a scored are placed in this parameter. Initialize them here.
124116
*/
125117
@SuppressWarnings("unchecked")
126-
public VectorScoreScript(Map<String, Object> params) throws ScriptException {
118+
public VectorScoreScript(Map<String, Object> params) {
127119
final Object cosineBool = params.get("cosine");
128120
cosine = cosineBool != null ?
129121
(boolean)cosineBool :

src/main/java/com/liorkn/elasticsearch/service/VectorScoringScriptEngineService.java

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99
import org.elasticsearch.script.CompiledScript;
1010
import org.elasticsearch.script.ExecutableScript;
1111
import org.elasticsearch.script.LeafSearchScript;
12-
import org.elasticsearch.script.NativeScriptFactory;
1312
import org.elasticsearch.script.ScriptEngineService;
1413
import org.elasticsearch.script.SearchScript;
1514
import org.elasticsearch.search.lookup.SearchLookup;
@@ -30,29 +29,35 @@ public VectorScoringScriptEngineService(Settings settings) {
3029
}
3130

3231
@Override
33-
public String getType() {
34-
return NAME;
32+
public Object compile(String scriptName, String scriptSource, Map<String, String> params) {
33+
return new VectorScoreScript.Factory();
3534
}
3635

36+
3737
@Override
38-
public String getExtension() {
38+
public boolean isInlineScriptEnabled() {
39+
return true;
40+
}
41+
42+
@Override
43+
public String getType() {
3944
return NAME;
4045
}
4146

4247
@Override
43-
public Object compile(String script, String source, Map<String, String> params) {
44-
return new VectorScoreScript.Factory();
48+
public String getExtension() {
49+
return NAME;
4550
}
4651

4752
@Override
4853
public ExecutableScript executable(CompiledScript compiledScript, @Nullable Map<String, Object> vars) {
49-
NativeScriptFactory scriptFactory = (NativeScriptFactory) compiledScript.compiled();
54+
VectorScoreScript.Factory scriptFactory = (VectorScoreScript.Factory) compiledScript.compiled();
5055
return scriptFactory.newScript(vars);
5156
}
5257

5358
@Override
5459
public SearchScript search(CompiledScript compiledScript, final SearchLookup lookup, @Nullable final Map<String, Object> vars) {
55-
final NativeScriptFactory scriptFactory = (NativeScriptFactory) compiledScript.compiled();
60+
final VectorScoreScript.Factory scriptFactory = (VectorScoreScript.Factory) compiledScript.compiled();
5661
final VectorScoreScript script = (VectorScoreScript) scriptFactory.newScript(vars);
5762
return new SearchScript() {
5863
@Override

0 commit comments

Comments
 (0)