aboutsummaryrefslogtreecommitdiffstats
path: root/searchlib
diff options
context:
space:
mode:
authorOlli Virtanen <ovirtanen@gmail.com>2019-03-15 12:37:10 +0100
committerGitHub <noreply@github.com>2019-03-15 12:37:10 +0100
commitaef75eae6244583e7ad429049ad4efe1ec46e70b (patch)
treec67a5fbe8be85373a7557617b407cdb186da3d6f /searchlib
parent2e8f039246b4b69303f2da48f37819a6c24ce887 (diff)
parentcd43364b451b40936fd2e21cb868820438536d78 (diff)
Merge pull request #8739 from vespa-engine/ollivir/protobuf-search
Protobuf over jrt support in search
Diffstat (limited to 'searchlib')
-rw-r--r--searchlib/CMakeLists.txt1
-rw-r--r--searchlib/pom.xml25
-rw-r--r--searchlib/src/main/java/ai/vespa/searchlib/searchprotocol/protobuf/package-info.java5
-rw-r--r--searchlib/src/protobuf/search.proto62
4 files changed, 93 insertions, 0 deletions
diff --git a/searchlib/CMakeLists.txt b/searchlib/CMakeLists.txt
index 11863bead42..e62806c636e 100644
--- a/searchlib/CMakeLists.txt
+++ b/searchlib/CMakeLists.txt
@@ -232,6 +232,7 @@ vespa_define_module(
install_java_artifact(searchlib)
install_fat_java_artifact(searchlib)
+install_java_artifact_dependencies(searchlib)
vespa_install_script(src/main/sh/vespa-gbdt-converter bin)
vespa_install_script(src/main/sh/vespa-treenet-converter bin)
diff --git a/searchlib/pom.xml b/searchlib/pom.xml
index 1d7862d541e..99ce2bdd0ba 100644
--- a/searchlib/pom.xml
+++ b/searchlib/pom.xml
@@ -57,6 +57,11 @@
</exclusions>
<scope>provided</scope>
</dependency>
+ <dependency>
+ <groupId>com.google.protobuf</groupId>
+ <artifactId>protobuf-java</artifactId>
+ <scope>provided</scope>
+ </dependency>
</dependencies>
<build>
<plugins>
@@ -81,6 +86,10 @@
<artifactId>ph-javacc-maven-plugin</artifactId>
</plugin>
<plugin>
+ <groupId>com.github.os72</groupId>
+ <artifactId>protoc-jar-maven-plugin</artifactId>
+ </plugin>
+ <plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-install-plugin</artifactId>
<configuration>
@@ -104,6 +113,22 @@
</executions>
</plugin>
<plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-dependency-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>copy-dependencies</id>
+ <phase>package</phase>
+ <goals>
+ <goal>copy-dependencies</goal>
+ </goals>
+ <configuration>
+ <includeArtifactIds>protobuf-java</includeArtifactIds>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
<groupId>com.yahoo.vespa</groupId>
<artifactId>abi-check-plugin</artifactId>
</plugin>
diff --git a/searchlib/src/main/java/ai/vespa/searchlib/searchprotocol/protobuf/package-info.java b/searchlib/src/main/java/ai/vespa/searchlib/searchprotocol/protobuf/package-info.java
new file mode 100644
index 00000000000..4463d4c9f52
--- /dev/null
+++ b/searchlib/src/main/java/ai/vespa/searchlib/searchprotocol/protobuf/package-info.java
@@ -0,0 +1,5 @@
+// Copyright 2019 Oath Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
+@ExportPackage
+package ai.vespa.searchlib.searchprotocol.protobuf;
+
+import com.yahoo.osgi.annotation.ExportPackage;
diff --git a/searchlib/src/protobuf/search.proto b/searchlib/src/protobuf/search.proto
new file mode 100644
index 00000000000..ea3daafe707
--- /dev/null
+++ b/searchlib/src/protobuf/search.proto
@@ -0,0 +1,62 @@
+// Copyright 2019 Oath Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
+
+syntax = "proto3";
+
+package searchlib.searchprotocol.protobuf;
+
+option java_package = "ai.vespa.searchlib.searchprotocol.protobuf";
+
+message Request {
+ int32 offset = 1;
+ int32 hits = 2;
+ int32 timeout = 3; // milliseconds
+ int32 trace_level = 4;
+ repeated SortField sorting = 5;
+ string session_key = 6;
+ string document_type = 7;
+ bool cache_grouping = 8;
+ bool cache_query = 9;
+ string rank_profile = 10;
+ repeated StringProperty feature_overrides = 11;
+ repeated TensorProperty tensor_feature_overrides = 12;
+ repeated StringProperty rank_properties = 13;
+ repeated TensorProperty tensor_rank_properties = 14;
+ repeated StringProperty highlight_terms = 15;
+ bytes grouping_blob = 16; // serialized opaquely like now, to be changed later
+ string geo_location = 17; // to be moved into query_tree
+ bytes query_tree_blob = 18; // serialized opaquely like now, to be changed later
+}
+
+message TensorProperty {
+ string name = 1;
+ bytes value = 2;
+}
+
+message StringProperty {
+ string name = 1;
+ repeated string values = 2;
+}
+
+message SortField {
+ bool ascending = 1;
+ string field = 2;
+}
+
+message Reply {
+ int64 total_hit_count = 1;
+ int64 coverage_docs = 2;
+ int64 active_docs = 3;
+ int64 soon_active_docs = 4;
+ bool degraded_by_match_phase = 5;
+ bool degraded_by_soft_timeout = 6;
+
+ repeated Hit hits = 7;
+
+ bytes grouping_blob = 8; // serialized opaquely like now, to be changed later
+}
+
+message Hit {
+ bytes global_id = 1;
+ double relevance = 2;
+ bytes sort_data = 3;
+}