How to perform a semantic search
In the following example, we’ll:1
Define a collection schema
Define a collection schema for semantic search.
2
Add documents
Add documents to the collection.
3
Query the collection with semantic search
Perform a semantic search.
Define a collection schema
Semantic search is enabled by adding asemantic_index()
to a text field in the collection schema:
If you want to use your own embeddings instead of TopK’s built-in
semantic_index()
, see Vector Search.Add documents to the collection
Let’s add some documents to the collection:Perform a semantic search
To search for documents based on semantic similarity, use thesemantic_similarity()
function:
- The
semantic_similarity()
function computes the similarity between the query"classic American novel"
and the text value stored in thetitle
field for each document. - TopK performs automatic query embedding under the hood using the model specified in the
semantic_index()
function. - The results are ranked based on similarity, and the top 10 most relevant documents are returned.
- The optional
.rerank()
call uses a reranking model to improve relevance of the results. For more information, see our Reranking guide.
Combining semantic and keyword search
For certain use cases, you might want to use a combination of keyword search and semantic search:ensuring your search results capture both exact matches and contextual meaning with a custom scoring function that’s best suited for your use case.