aboutsummaryrefslogtreecommitdiff
path: root/proto/icing/proto/search.proto
diff options
context:
space:
mode:
Diffstat (limited to 'proto/icing/proto/search.proto')
-rw-r--r--proto/icing/proto/search.proto26
1 files changed, 24 insertions, 2 deletions
diff --git a/proto/icing/proto/search.proto b/proto/icing/proto/search.proto
index fca669a..7f4fb3e 100644
--- a/proto/icing/proto/search.proto
+++ b/proto/icing/proto/search.proto
@@ -27,7 +27,7 @@ option java_multiple_files = true;
option objc_class_prefix = "ICNG";
// Client-supplied specifications on what documents to retrieve.
-// Next tag: 10
+// Next tag: 11
message SearchSpecProto {
// REQUIRED: The "raw" query string that users may type. For example, "cat"
// will search for documents with the term cat in it.
@@ -102,11 +102,21 @@ message SearchSpecProto {
// Finer-grained locks are implemented around code paths that write changes to
// Icing during Search.
optional bool use_read_only_search = 9 [default = true];
+
+ // TODO(b/294266822): Handle multiple property filter lists for same schema
+ // type.
+ // How to specify a subset of properties to be searched. If no type property
+ // filter has been specified for a schema type (no TypePropertyMask for the
+ // given schema type), then *all* properties of that schema type will be
+ // searched. If an empty property filter is specified for a given schema type
+ // (TypePropertyMask for the given schema type has empty paths field), no
+ // properties of that schema type will be searched.
+ repeated TypePropertyMask type_property_filters = 10;
}
// Client-supplied specifications on what to include/how to format the search
// results.
-// Next tag: 9
+// Next tag: 10
message ResultSpecProto {
// The results will be returned in pages, and num_per_page specifies the
// number of documents in one page.
@@ -211,6 +221,18 @@ message ResultSpecProto {
// The max # of child documents will be attached and returned in the result
// for each parent. It is only used for join API.
optional int32 max_joined_children_per_parent_to_return = 8;
+
+ // The max # of results being scored and ranked.
+ // Running time of ScoringProcessor and Ranker is O(num_to_score) according to
+ // results of //icing/scoring:score-and-rank_benchmark. Note that
+ // the process includes scoring, building a heap, and popping results from the
+ // heap.
+ //
+ // 30000 results can be scored and ranked within 3 ms on a Pixel 3 XL
+ // according to results of
+ // //icing/scoring:score-and-rank_benchmark, so set it as the
+ // default value.
+ optional int32 num_to_score = 9 [default = 30000];
}
// The representation of a single match within a DocumentProto property.