// Copyright 2022 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. syntax = "proto3"; package google.cloud.contentwarehouse.v1; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; option go_package = "google.golang.org/genproto/googleapis/cloud/contentwarehouse/v1;contentwarehouse"; option java_multiple_files = true; option java_outer_classname = "HistogramProto"; option java_package = "com.google.cloud.contentwarehouse.v1"; // The histogram request. message HistogramQuery { // An expression specifies a histogram request against matching documents for // searches. // // See [SearchDocumentsRequest.histogram_queries][google.cloud.contentwarehouse.v1.SearchDocumentsRequest.histogram_queries] for details about syntax. string histogram_query = 1; // Controls if the histogram query requires the return of a precise count. // Enable this flag may adversely impact performance. // // Defaults to true. bool require_precise_result_size = 2; // Optional. Filter the result of histogram query by the property names. It only works // with histogram query count('FilterableProperties'). // It is an optional. It will perform histogram on all the property names for // all the document schemas. Setting this field will have a better // performance. HistogramQueryPropertyNameFilter filters = 3 [(google.api.field_behavior) = OPTIONAL]; } message HistogramQueryPropertyNameFilter { // The result of the histogram query count('FilterableProperties') using // HISTOGRAM_YAXIS_DOCUMENT will be: // invoice_id: 2 // address: 1 // payment_method: 2 // line_item_description: 1 enum HistogramYAxis { // Count the documents per property name. HISTOGRAM_YAXIS_DOCUMENT = 0; // Count the properties per property name. HISTOGRAM_YAXIS_PROPERTY = 1; } // This filter specifies the exact document schema(s) // [Document.document_schema_name][google.cloud.contentwarehouse.v1.Document.document_schema_name] to run histogram query against. // It is optional. It will perform histogram for property names for all the // document schemas if it is not set. // // At most 10 document schema names are allowed. // Format: // projects/{project_number}/locations/{location}/documentSchemas/{document_schema_id}. repeated string document_schemas = 1 [(google.api.resource_reference) = { type: "contentwarehouse.googleapis.com/DocumentSchema" }]; // It is optional. It will perform histogram for all the property names if it // is not set. // The properties need to be defined with the is_filterable flag set to // true and the name of the property should be in the format: // "schemaId.propertyName". The property needs to be defined in the schema. // Example: the schema id is abc. Then the name of property for property // MORTGAGE_TYPE will be "abc.MORTGAGE_TYPE". repeated string property_names = 2; // By default, the y_axis is HISTOGRAM_YAXIS_DOCUMENT if this field is not // set. HistogramYAxis y_axis = 3; } // Histogram result that matches [HistogramQuery][google.cloud.contentwarehouse.v1.HistogramQuery] specified in searches. message HistogramQueryResult { // Requested histogram expression. string histogram_query = 1; // A map from the values of the facet associated with distinct values to the // number of matching entries with corresponding value. // // The key format is: // // * (for string histogram) string values stored in the field. map histogram = 2; }