Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
curl -XPOST -H "Content-Type: application/json" \
-u ${CB_USERNAME}:${CB_PASSWORD} http://${CB_HOSTNAME}:8094/api/bucket/vector-sample/scope/color/index/color-index/query \
-d '{
"fields": ["*"],
"query": {
"min": 70,
"max": 80,
"inclusive_min": false,
"inclusive_max": true,
"field": "brightness"
},
"knn": [
{
"k": 10,
"field": "colorvect_l2",
"vector": [ 176, 0, 176 ],
"filter": {
"field: "color",
"match": "navy"
}
}
]
}'
64 changes: 64 additions & 0 deletions modules/vector-search/pages/pre-filtering-vector-search.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
= Pre-filtering Vector Searches
:page-topic-type: guide
:page-ui-name: {ui-name}
:description: You can specify filters as part of a vector search statement which will restrict the documents searched during the query.

[abstract]
{description}

== About Pre-filtering

Using pre-filtering as part of your vector search offers two key advantages:

[horizontal]
Enhanced precision and relevance::
allows searches to be narrowed down to results based on specific criteria (eg., organization, date/time ranges, geospatial locations.)

Performance optimization::
by reducing the search space before executing the queries, you can improve query execution time and reduce computational overhead.

== Prerequisites

* You have the Search Service enabled on a node in your database.
For more information about how to deploy a new node and Services on your database, see xref:server:manage:manage-nodes/node-management-overview.adoc[].

* You have a bucket with scopes and collections in your database.
For more information about how to create a bucket, see xref:server:manage:manage-buckets/create-bucket.adoc[].

* Your user account has the *Search Admin* or *Search Reader* role.

* You installed the Couchbase command-line tool (CLI).

* You have the hostname or IP address for the node in your database where you're running the Search Service.
For more information about where to find the IP address for your node, see xref:server:manage:manage-nodes/list-cluster-nodes.adoc[].

* You have created a Vector Search index.
+
For more information about how to create a Vector Search index, see xref:create-vector-search-index-ui.adoc[] or xref:create-vector-search-index-rest-api.adoc[].
+
[TIP]
--
include::partial$download-sample-partial.adoc[]

For the best results, consider using the sample Vector Search index from xref:create-vector-search-index-ui.adoc#example[Create a Vector Search Index with the {page-ui-name}] or xref:create-vector-search-index-rest-api.adoc#example[Create a Vector Search Index with the REST API and curl/HTTP].
--

== Procedure

To run a pre-filtered vector search with the REST API:

. In your command-line tool, enter a `curl` command with the `XPOST` verb.
. Set your header content to include `"Content-Type: application/json"`.
. Enter your username, password, and the Search Service endpoint on port `8094` with the name of the Vector Search index you want to query:


=== Example

In the following example, you will extend a search query to employ a pre-filter to narrow the set of documents that the query will search over.

[source, console]
----
include::example$run-pre-filtered-vector-search-rest-api.sh[]
----


3 changes: 2 additions & 1 deletion modules/vector-search/partials/nav.adoc
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
* xref:7.6@server:vector-search:vector-search.adoc[]
** xref:7.6@server:vector-search:create-vector-search-index-ui.adoc[]
** xref:7.6@server:vector-search:create-vector-search-index-rest-api.adoc[]
** xref:7.6@server:vector-search:pre-filtering-vector-search.adoc[]
** xref:7.6@server:vector-search:run-vector-search-ui.adoc[]
** xref:7.6@server:vector-search:run-vector-search-rest-api.adoc[]
** xref:7.6@server:vector-search:run-vector-search-sdk.adoc[]
** xref:7.6@server:vector-search:run-vector-search-sdk.adoc[]