diff options
author | Olli Virtanen <ovirtanen@gmail.com> | 2019-03-15 12:37:10 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-03-15 12:37:10 +0100 |
commit | aef75eae6244583e7ad429049ad4efe1ec46e70b (patch) | |
tree | c67a5fbe8be85373a7557617b407cdb186da3d6f /searchlib | |
parent | 2e8f039246b4b69303f2da48f37819a6c24ce887 (diff) | |
parent | cd43364b451b40936fd2e21cb868820438536d78 (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.txt | 1 | ||||
-rw-r--r-- | searchlib/pom.xml | 25 | ||||
-rw-r--r-- | searchlib/src/main/java/ai/vespa/searchlib/searchprotocol/protobuf/package-info.java | 5 | ||||
-rw-r--r-- | searchlib/src/protobuf/search.proto | 62 |
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; +} |