# Curation
While Typesense makes it really easy and intuitive to deliver great search results, sometimes you might want to promote certain documents over others. Or, you might want to exclude certain documents from a query's result set.
Using overrides, you can include or exclude specific documents for a given query.
# Create or update an override
# Including or excluding documents
In the following example, we will:
- Use the
includes
condition to place the documents with ids422
and54
in the first and second positions respectively. - Use the
excludes
condition to remove the document with id287
from the results.
Typesense allows you to use both includes
and excludes
or just one of them for curation.
Note how we are applying these overrides to an exact
match of the query apple
. Instead, if we want to match all
queries containing the word apple
, we will use the contains
match instead.
# Sample Response
# Dynamic filtering
In the following example, we will apply a filter dynamically to a query that matches a rule.
With this override in effect, any query that contains a brand will automatically be filtered on the matching brand directly. In addition, the brand will also be removed from the original query tokens, so that the search is made only on the remaining tokens.
For example, if someone searches for sony ericsson phone
, the query will be re-written as phone
and a
sony ericsson
brand filter will be directly applied. If you don't wish to remove matching tokens from the query,
set remove_matched_tokens
to false
. By default, this parameter is set to true
.
# Definition
PUT ${TYPESENSE_HOST}/collections/:collection/overrides/:id
# Parameters
Parameter | Required | Description |
---|---|---|
rule.query | yes | Indicates what search queries should be overridden. |
rule.match | yes | Indicates whether the match on the query term should be exact or contains . |
excludes | no | List of document id s that should be excluded from the search results. |
includes | no | List of document id s that should be included in the search results with their corresponding positions . |
filter_by | no | A filter by clause that is applied to any search query that matches the override rule. |
remove_matched_tokens | no | Indicates whether search query tokens that exist in the override's rule should be removed from the search query. Default: true . |
# List all overrides
Listing all overrides associated with a given collection.
# Sample Response
# Definition
GET ${TYPESENSE_HOST}/collections/:collection/overrides
# Retrieve an override
Fetch an individual override associated with a collection.
# Sample Response
# Definition
GET ${TYPESENSE_HOST}/collections/:collection/overrides/:id
# Delete an override
Deleting an override associated with a collection.
# Sample Response
# Definition
DELETE ${TYPESENSE_HOST}/collections/:collection/overrides/:id