ProductSearchAsyncClient(*, credentials: google.auth.credentials.Credentials = None, transport: Union[str, google.cloud.vision_v1p3beta1.services.product_search.transports.base.ProductSearchTransport] = 'grpc_asyncio', client_options: <module 'google.api_core.client_options' from '/workspace/python-vision/.nox/docfx/lib/python3.9/site-packages/google/api_core/client_options.py'> = None, client_info: google.api_core.gapic_v1.client_info.ClientInfo = <google.api_core.gapic_v1.client_info.ClientInfo object>)
Manages Products and ProductSets of reference images for use in product search. It uses the following resource model:
- The API has a collection of
ProductSet resources,
named
projects/*/locations/*/productSets/*
, which acts as a way to put different products into groups to limit identification.
In parallel,
The API has a collection of Product resources, named
projects/*/locations/*/products/*
Each Product has a collection of ReferenceImage resources, named
projects/*/locations/*/products/*/referenceImages/*
Methods
ProductSearchAsyncClient
ProductSearchAsyncClient(*, credentials: google.auth.credentials.Credentials = None, transport: Union[str, google.cloud.vision_v1p3beta1.services.product_search.transports.base.ProductSearchTransport] = 'grpc_asyncio', client_options: <module 'google.api_core.client_options' from '/workspace/python-vision/.nox/docfx/lib/python3.9/site-packages/google/api_core/client_options.py'> = None, client_info: google.api_core.gapic_v1.client_info.ClientInfo = <google.api_core.gapic_v1.client_info.ClientInfo object>)
Instantiate the product search client.
Parameters | |
---|---|
Name | Description |
credentials |
Optional[google.auth.credentials.Credentials]
The authorization credentials to attach to requests. These credentials identify the application to the service; if none are specified, the client will attempt to ascertain the credentials from the environment. |
transport |
Union[str,
The transport to use. If set to None, a transport is chosen automatically. |
client_options |
ClientOptions
Custom options for the client. It won't take effect if a |
Exceptions | |
---|---|
Type | Description |
google.auth.exceptions.MutualTlsChannelError | If mutual TLS transport creation failed for any reason. |
add_product_to_product_set
add_product_to_product_set(request: Optional[google.cloud.vision_v1p3beta1.types.product_search_service.AddProductToProductSetRequest] = None, *, name: Optional[str] = None, product: Optional[str] = None, retry: google.api_core.retry.Retry = <_MethodDefault._DEFAULT_VALUE: <object object>>, timeout: Optional[float] = None, metadata: Sequence[Tuple[str, str]] = ())
Adds a Product to the specified ProductSet. If the Product is already present, no change is made.
One Product can be added to at most 100 ProductSets.
Possible errors:
- Returns NOT_FOUND if the Product or the ProductSet doesn't exist.
Parameters | |
---|---|
Name | Description |
request |
The request object. Request message for the |
name |
Required. The resource name for the ProductSet to modify. Format is: |
product |
Required. The resource name for the Product to be added to this ProductSet. Format is: |
retry |
google.api_core.retry.Retry
Designation of what errors, if any, should be retried. |
timeout |
float
The timeout for this request. |
metadata |
Sequence[Tuple[str, str]]
Strings which should be sent along with the request as metadata. |
create_product
create_product(request: Optional[google.cloud.vision_v1p3beta1.types.product_search_service.CreateProductRequest] = None, *, parent: Optional[str] = None, product: Optional[google.cloud.vision_v1p3beta1.types.product_search_service.Product] = None, product_id: Optional[str] = None, retry: google.api_core.retry.Retry = <_MethodDefault._DEFAULT_VALUE: <object object>>, timeout: Optional[float] = None, metadata: Sequence[Tuple[str, str]] = ())
Creates and returns a new product resource.
Possible errors:
- Returns INVALID_ARGUMENT if display_name is missing or longer than 4096 characters.
- Returns INVALID_ARGUMENT if description is longer than 4096 characters.
- Returns INVALID_ARGUMENT if product_category is missing or invalid.
Parameters | |
---|---|
Name | Description |
request |
The request object. Request message for the |
parent |
Required. The project in which the Product should be created. Format is |
product |
Required. The product to create. This corresponds to the |
product_id |
A user-supplied resource id for this Product. If set, the server will attempt to use this value as the resource id. If it is already in use, an error is returned with code ALREADY_EXISTS. Must be at most 128 characters long. It cannot contain the character |
retry |
google.api_core.retry.Retry
Designation of what errors, if any, should be retried. |
timeout |
float
The timeout for this request. |
metadata |
Sequence[Tuple[str, str]]
Strings which should be sent along with the request as metadata. |
Returns | |
---|---|
Type | Description |
| A Product contains ReferenceImages. |
create_product_set
create_product_set(request: Optional[google.cloud.vision_v1p3beta1.types.product_search_service.CreateProductSetRequest] = None, *, parent: Optional[str] = None, product_set: Optional[google.cloud.vision_v1p3beta1.types.product_search_service.ProductSet] = None, product_set_id: Optional[str] = None, retry: google.api_core.retry.Retry = <_MethodDefault._DEFAULT_VALUE: <object object>>, timeout: Optional[float] = None, metadata: Sequence[Tuple[str, str]] = ())
Creates and returns a new ProductSet resource.
Possible errors:
- Returns INVALID_ARGUMENT if display_name is missing, or is longer than 4096 characters.
Parameters | |
---|---|
Name | Description |
request |
The request object. Request message for the |
parent |
Required. The project in which the ProductSet should be created. Format is |
product_set |
Required. The ProductSet to create. This corresponds to the |
product_set_id |
A user-supplied resource id for this ProductSet. If set, the server will attempt to use this value as the resource id. If it is already in use, an error is returned with code ALREADY_EXISTS. Must be at most 128 characters long. It cannot contain the character |
retry |
google.api_core.retry.Retry
Designation of what errors, if any, should be retried. |
timeout |
float
The timeout for this request. |
metadata |
Sequence[Tuple[str, str]]
Strings which should be sent along with the request as metadata. |
Returns | |
---|---|
Type | Description |
| A ProductSet contains Products. A ProductSet can contain a maximum of 1 million reference images. If the limit is exceeded, periodic indexing will fail. |
create_reference_image
create_reference_image(request: Optional[google.cloud.vision_v1p3beta1.types.product_search_service.CreateReferenceImageRequest] = None, *, parent: Optional[str] = None, reference_image: Optional[google.cloud.vision_v1p3beta1.types.product_search_service.ReferenceImage] = None, reference_image_id: Optional[str] = None, retry: google.api_core.retry.Retry = <_MethodDefault._DEFAULT_VALUE: <object object>>, timeout: Optional[float] = None, metadata: Sequence[Tuple[str, str]] = ())
Creates and returns a new ReferenceImage resource.
The bounding_poly
field is optional. If bounding_poly
is
not specified, the system will try to detect regions of interest
in the image that are compatible with the product_category on
the parent product. If it is specified, detection is ALWAYS
skipped. The system converts polygons into non-rotated
rectangles.
Note that the pipeline will resize the image if the image resolution is too large to process (above 50MP).
Possible errors:
- Returns INVALID_ARGUMENT if the image_uri is missing or longer than 4096 characters.
- Returns INVALID_ARGUMENT if the product does not exist.
- Returns INVALID_ARGUMENT if bounding_poly is not provided, and nothing compatible with the parent product's product_category is detected.
- Returns INVALID_ARGUMENT if bounding_poly contains more than 10 polygons.
Parameters | |
---|---|
Name | Description |
request |
The request object. Request message for the |
parent |
Required. Resource name of the product in which to create the reference image. Format is |
reference_image |
Required. The reference image to create. If an image ID is specified, it is ignored. This corresponds to the |
reference_image_id |
A user-supplied resource id for the ReferenceImage to be added. If set, the server will attempt to use this value as the resource id. If it is already in use, an error is returned with code ALREADY_EXISTS. Must be at most 128 characters long. It cannot contain the character |
retry |
google.api_core.retry.Retry
Designation of what errors, if any, should be retried. |
timeout |
float
The timeout for this request. |
metadata |
Sequence[Tuple[str, str]]
Strings which should be sent along with the request as metadata. |
Returns | |
---|---|
Type | Description |
| A ReferenceImage represents a product image and its associated metadata, such as bounding boxes. |
delete_product
delete_product(request: Optional[google.cloud.vision_v1p3beta1.types.product_search_service.DeleteProductRequest] = None, *, name: Optional[str] = None, retry: google.api_core.retry.Retry = <_MethodDefault._DEFAULT_VALUE: <object object>>, timeout: Optional[float] = None, metadata: Sequence[Tuple[str, str]] = ())
Permanently deletes a product and its reference images.
Metadata of the product and all its images will be deleted right away, but search queries against ProductSets containing the product may still work until all related caches are refreshed.
Possible errors:
- Returns NOT_FOUND if the product does not exist.
Parameters | |
---|---|
Name | Description |
request |
The request object. Request message for the |
name |
Required. Resource name of product to delete. Format is: |
retry |
google.api_core.retry.Retry
Designation of what errors, if any, should be retried. |
timeout |
float
The timeout for this request. |
metadata |
Sequence[Tuple[str, str]]
Strings which should be sent along with the request as metadata. |
delete_product_set
delete_product_set(request: Optional[google.cloud.vision_v1p3beta1.types.product_search_service.DeleteProductSetRequest] = None, *, name: Optional[str] = None, retry: google.api_core.retry.Retry = <_MethodDefault._DEFAULT_VALUE: <object object>>, timeout: Optional[float] = None, metadata: Sequence[Tuple[str, str]] = ())
Permanently deletes a ProductSet. All Products and ReferenceImages in the ProductSet will be deleted.
The actual image files are not deleted from Google Cloud Storage.
Possible errors:
- Returns NOT_FOUND if the ProductSet does not exist.
Parameters | |
---|---|
Name | Description |
request |
The request object. Request message for the |
name |
Required. Resource name of the ProductSet to delete. Format is: |
retry |
google.api_core.retry.Retry
Designation of what errors, if any, should be retried. |
timeout |
float
The timeout for this request. |
metadata |
Sequence[Tuple[str, str]]
Strings which should be sent along with the request as metadata. |
delete_reference_image
delete_reference_image(request: Optional[google.cloud.vision_v1p3beta1.types.product_search_service.DeleteReferenceImageRequest] = None, *, name: Optional[str] = None, retry: google.api_core.retry.Retry = <_MethodDefault._DEFAULT_VALUE: <object object>>, timeout: Optional[float] = None, metadata: Sequence[Tuple[str, str]] = ())
Permanently deletes a reference image.
The image metadata will be deleted right away, but search queries against ProductSets containing the image may still work until all related caches are refreshed.
The actual image files are not deleted from Google Cloud Storage.
Possible errors:
- Returns NOT_FOUND if the reference image does not exist.
Parameters | |
---|---|
Name | Description |
request |
The request object. Request message for the |
name |
Required. The resource name of the reference image to delete. Format is: |
retry |
google.api_core.retry.Retry
Designation of what errors, if any, should be retried. |
timeout |
float
The timeout for this request. |
metadata |
Sequence[Tuple[str, str]]
Strings which should be sent along with the request as metadata. |
from_service_account_file
from_service_account_file(filename: str, *args, **kwargs)
Creates an instance of this client using the provided credentials file.
Parameter | |
---|---|
Name | Description |
filename |
str
The path to the service account private key json file. |
Returns | |
---|---|
Type | Description |
{@api.name} | The constructed client. |
from_service_account_json
from_service_account_json(filename: str, *args, **kwargs)
Creates an instance of this client using the provided credentials file.
Parameter | |
---|---|
Name | Description |
filename |
str
The path to the service account private key json file. |
Returns | |
---|---|
Type | Description |
{@api.name} | The constructed client. |
get_product
get_product(request: Optional[google.cloud.vision_v1p3beta1.types.product_search_service.GetProductRequest] = None, *, name: Optional[str] = None, retry: google.api_core.retry.Retry = <_MethodDefault._DEFAULT_VALUE: <object object>>, timeout: Optional[float] = None, metadata: Sequence[Tuple[str, str]] = ())
Gets information associated with a Product.
Possible errors:
- Returns NOT_FOUND if the Product does not exist.
Parameters | |
---|---|
Name | Description |
request |
The request object. Request message for the |
name |
Required. Resource name of the Product to get. Format is: |
retry |
google.api_core.retry.Retry
Designation of what errors, if any, should be retried. |
timeout |
float
The timeout for this request. |
metadata |
Sequence[Tuple[str, str]]
Strings which should be sent along with the request as metadata. |
Returns | |
---|---|
Type | Description |
| A Product contains ReferenceImages. |
get_product_set
get_product_set(request: Optional[google.cloud.vision_v1p3beta1.types.product_search_service.GetProductSetRequest] = None, *, name: Optional[str] = None, retry: google.api_core.retry.Retry = <_MethodDefault._DEFAULT_VALUE: <object object>>, timeout: Optional[float] = None, metadata: Sequence[Tuple[str, str]] = ())
Gets information associated with a ProductSet.
Possible errors:
- Returns NOT_FOUND if the ProductSet does not exist.
Parameters | |
---|---|
Name | Description |
request |
The request object. Request message for the |
name |
Required. Resource name of the ProductSet to get. Format is: |
retry |
google.api_core.retry.Retry
Designation of what errors, if any, should be retried. |
timeout |
float
The timeout for this request. |
metadata |
Sequence[Tuple[str, str]]
Strings which should be sent along with the request as metadata. |
Returns | |
---|---|
Type | Description |
| A ProductSet contains Products. A ProductSet can contain a maximum of 1 million reference images. If the limit is exceeded, periodic indexing will fail. |
get_reference_image
get_reference_image(request: Optional[google.cloud.vision_v1p3beta1.types.product_search_service.GetReferenceImageRequest] = None, *, name: Optional[str] = None, retry: google.api_core.retry.Retry = <_MethodDefault._DEFAULT_VALUE: <object object>>, timeout: Optional[float] = None, metadata: Sequence[Tuple[str, str]] = ())
Gets information associated with a ReferenceImage.
Possible errors:
- Returns NOT_FOUND if the specified image does not exist.
Parameters | |
---|---|
Name | Description |
request |
The request object. Request message for the |
name |
Required. The resource name of the ReferenceImage to get. Format is: |
retry |
google.api_core.retry.Retry
Designation of what errors, if any, should be retried. |
timeout |
float
The timeout for this request. |
metadata |
Sequence[Tuple[str, str]]
Strings which should be sent along with the request as metadata. |
Returns | |
---|---|
Type | Description |
| A ReferenceImage represents a product image and its associated metadata, such as bounding boxes. |
get_transport_class
get_transport_class()
Return an appropriate transport class.
import_product_sets
import_product_sets(request: Optional[google.cloud.vision_v1p3beta1.types.product_search_service.ImportProductSetsRequest] = None, *, parent: Optional[str] = None, input_config: Optional[google.cloud.vision_v1p3beta1.types.product_search_service.ImportProductSetsInputConfig] = None, retry: google.api_core.retry.Retry = <_MethodDefault._DEFAULT_VALUE: <object object>>, timeout: Optional[float] = None, metadata: Sequence[Tuple[str, str]] = ())
Asynchronous API that imports a list of reference images to specified product sets based on a list of image information.
The google.longrunning.Operation][google.longrunning.Operation]
API can be used to keep track of the progress and results of the
request. Operation.metadata
contains
BatchOperationMetadata
. (progress) Operation.response
contains ImportProductSetsResponse
. (results)
The input source of this method is a csv file on Google Cloud Storage. For the format of the csv file please see xref_ImportProductSetsGcsSource.csv_file_uri.
Parameters | |
---|---|
Name | Description |
request |
The request object. Request message for the |
parent |
Required. The project in which the ProductSets should be imported. Format is |
input_config |
Required. The input content for the list of requests. This corresponds to the |
retry |
google.api_core.retry.Retry
Designation of what errors, if any, should be retried. |
timeout |
float
The timeout for this request. |
metadata |
Sequence[Tuple[str, str]]
Strings which should be sent along with the request as metadata. |
Returns | |
---|---|
Type | Description |
| An object representing a long-running operation. The result type for the operation will be .product_search_service.ImportProductSetsResponse: Response message for the ImportProductSets method. This message is returned by the google.longrunning.Operations.GetOperation][google.longrunning.Operations.GetOperation] method in the returned google.longrunning.Operation.response][google.longrunning.Operation.response] field. |
list_product_sets
list_product_sets(request: Optional[google.cloud.vision_v1p3beta1.types.product_search_service.ListProductSetsRequest] = None, *, parent: Optional[str] = None, retry: google.api_core.retry.Retry = <_MethodDefault._DEFAULT_VALUE: <object object>>, timeout: Optional[float] = None, metadata: Sequence[Tuple[str, str]] = ())
Lists ProductSets in an unspecified order.
Possible errors:
- Returns INVALID_ARGUMENT if page_size is greater than 100, or less than 1.
Parameters | |
---|---|
Name | Description |
request |
The request object. Request message for the |
parent |
Required. The project from which ProductSets should be listed. Format is |
retry |
google.api_core.retry.Retry
Designation of what errors, if any, should be retried. |
timeout |
float
The timeout for this request. |
metadata |
Sequence[Tuple[str, str]]
Strings which should be sent along with the request as metadata. |
Returns | |
---|---|
Type | Description |
| Response message for the ListProductSets method. Iterating over this object will yield results and resolve additional pages automatically. |
list_products
list_products(request: Optional[google.cloud.vision_v1p3beta1.types.product_search_service.ListProductsRequest] = None, *, parent: Optional[str] = None, retry: google.api_core.retry.Retry = <_MethodDefault._DEFAULT_VALUE: <object object>>, timeout: Optional[float] = None, metadata: Sequence[Tuple[str, str]] = ())
Lists products in an unspecified order.
Possible errors:
- Returns INVALID_ARGUMENT if page_size is greater than 100 or less than 1.
Parameters | |
---|---|
Name | Description |
request |
The request object. Request message for the |
parent |
Required. The project OR ProductSet from which Products should be listed. Format: |
retry |
google.api_core.retry.Retry
Designation of what errors, if any, should be retried. |
timeout |
float
The timeout for this request. |
metadata |
Sequence[Tuple[str, str]]
Strings which should be sent along with the request as metadata. |
Returns | |
---|---|
Type | Description |
| Response message for the ListProducts method. Iterating over this object will yield results and resolve additional pages automatically. |
list_products_in_product_set
list_products_in_product_set(request: Optional[google.cloud.vision_v1p3beta1.types.product_search_service.ListProductsInProductSetRequest] = None, *, name: Optional[str] = None, retry: google.api_core.retry.Retry = <_MethodDefault._DEFAULT_VALUE: <object object>>, timeout: Optional[float] = None, metadata: Sequence[Tuple[str, str]] = ())
Lists the Products in a ProductSet, in an unspecified order. If the ProductSet does not exist, the products field of the response will be empty.
Possible errors:
- Returns INVALID_ARGUMENT if page_size is greater than 100 or less than 1.
Parameters | |
---|---|
Name | Description |
request |
The request object. Request message for the |
name |
Required. The ProductSet resource for which to retrieve Products. Format is: |
retry |
google.api_core.retry.Retry
Designation of what errors, if any, should be retried. |
timeout |
float
The timeout for this request. |
metadata |
Sequence[Tuple[str, str]]
Strings which should be sent along with the request as metadata. |
Returns | |
---|---|
Type | Description |
| Response message for the ListProductsInProductSet method. Iterating over this object will yield results and resolve additional pages automatically. |
list_reference_images
list_reference_images(request: Optional[google.cloud.vision_v1p3beta1.types.product_search_service.ListReferenceImagesRequest] = None, *, parent: Optional[str] = None, retry: google.api_core.retry.Retry = <_MethodDefault._DEFAULT_VALUE: <object object>>, timeout: Optional[float] = None, metadata: Sequence[Tuple[str, str]] = ())
Lists reference images.
Possible errors:
- Returns NOT_FOUND if the parent product does not exist.
- Returns INVALID_ARGUMENT if the page_size is greater than 100, or less than 1.
Parameters | |
---|---|
Name | Description |
request |
The request object. Request message for the |
parent |
Required. Resource name of the product containing the reference images. Format is |
retry |
google.api_core.retry.Retry
Designation of what errors, if any, should be retried. |
timeout |
float
The timeout for this request. |
metadata |
Sequence[Tuple[str, str]]
Strings which should be sent along with the request as metadata. |
Returns | |
---|---|
Type | Description |
| Response message for the ListReferenceImages method. Iterating over this object will yield results and resolve additional pages automatically. |
parse_product_path
parse_product_path(path: str)
Parse a product path into its component segments.
parse_product_set_path
parse_product_set_path(path: str)
Parse a product_set path into its component segments.
parse_reference_image_path
parse_reference_image_path(path: str)
Parse a reference_image path into its component segments.
product_path
product_path(project: str, location: str, product: str)
Return a fully-qualified product string.
product_set_path
product_set_path(project: str, location: str, product_set: str)
Return a fully-qualified product_set string.
reference_image_path
reference_image_path(
project: str, location: str, product: str, reference_image: str
)
Return a fully-qualified reference_image string.
remove_product_from_product_set
remove_product_from_product_set(request: Optional[google.cloud.vision_v1p3beta1.types.product_search_service.RemoveProductFromProductSetRequest] = None, *, name: Optional[str] = None, product: Optional[str] = None, retry: google.api_core.retry.Retry = <_MethodDefault._DEFAULT_VALUE: <object object>>, timeout: Optional[float] = None, metadata: Sequence[Tuple[str, str]] = ())
Removes a Product from the specified ProductSet.
Possible errors:
- Returns NOT_FOUND If the Product is not found under the ProductSet.
Parameters | |
---|---|
Name | Description |
request |
The request object. Request message for the |
name |
Required. The resource name for the ProductSet to modify. Format is: |
product |
Required. The resource name for the Product to be removed from this ProductSet. Format is: |
retry |
google.api_core.retry.Retry
Designation of what errors, if any, should be retried. |
timeout |
float
The timeout for this request. |
metadata |
Sequence[Tuple[str, str]]
Strings which should be sent along with the request as metadata. |
update_product
update_product(request: Optional[google.cloud.vision_v1p3beta1.types.product_search_service.UpdateProductRequest] = None, *, product: Optional[google.cloud.vision_v1p3beta1.types.product_search_service.Product] = None, update_mask: Optional[google.protobuf.field_mask_pb2.FieldMask] = None, retry: google.api_core.retry.Retry = <_MethodDefault._DEFAULT_VALUE: <object object>>, timeout: Optional[float] = None, metadata: Sequence[Tuple[str, str]] = ())
Makes changes to a Product resource. Only display_name, description and labels can be updated right now.
If labels are updated, the change will not be reflected in queries until the next index time.
Possible errors:
- Returns NOT_FOUND if the Product does not exist.
- Returns INVALID_ARGUMENT if display_name is present in update_mask but is missing from the request or longer than 4096 characters.
- Returns INVALID_ARGUMENT if description is present in update_mask but is longer than 4096 characters.
- Returns INVALID_ARGUMENT if product_category is present in update_mask.
Parameters | |
---|---|
Name | Description |
request |
The request object. Request message for the |
product |
Required. The Product resource which replaces the one on the server. product.name is immutable. This corresponds to the |
update_mask |
The |
retry |
google.api_core.retry.Retry
Designation of what errors, if any, should be retried. |
timeout |
float
The timeout for this request. |
metadata |
Sequence[Tuple[str, str]]
Strings which should be sent along with the request as metadata. |
Returns | |
---|---|
Type | Description |
| A Product contains ReferenceImages. |
update_product_set
update_product_set(request: Optional[google.cloud.vision_v1p3beta1.types.product_search_service.UpdateProductSetRequest] = None, *, product_set: Optional[google.cloud.vision_v1p3beta1.types.product_search_service.ProductSet] = None, update_mask: Optional[google.protobuf.field_mask_pb2.FieldMask] = None, retry: google.api_core.retry.Retry = <_MethodDefault._DEFAULT_VALUE: <object object>>, timeout: Optional[float] = None, metadata: Sequence[Tuple[str, str]] = ())
Makes changes to a ProductSet resource. Only display_name can be updated currently.
Possible errors:
- Returns NOT_FOUND if the ProductSet does not exist.
- Returns INVALID_ARGUMENT if display_name is present in update_mask but missing from the request or longer than 4096 characters.
Parameters | |
---|---|
Name | Description |
request |
The request object. Request message for the |
product_set |
Required. The ProductSet resource which replaces the one on the server. This corresponds to the |
update_mask |
The |
retry |
google.api_core.retry.Retry
Designation of what errors, if any, should be retried. |
timeout |
float
The timeout for this request. |
metadata |
Sequence[Tuple[str, str]]
Strings which should be sent along with the request as metadata. |
Returns | |
---|---|
Type | Description |
| A ProductSet contains Products. A ProductSet can contain a maximum of 1 million reference images. If the limit is exceeded, periodic indexing will fail. |