Author: Dave MacLeod Trying to produce relevant search results is one of the hardest things to get right when building an app. Searching can be done in a lot of ways: basic text search, full-text search, vector search, and often even graph and geospatial. This post introduces an example that includes two of these models: full-text and vector search together. These two tend to involve quite a bit of SurrealQL code, because: To use full-text search, you first have to define how you want text to be split up and modified. Do you want it to be case-sensitive? Split by whitespace, or some other way? Modified to root forms based on the language of the text? (And so on...) To use vector search, you have to generate embeddings for pieces of text and know how to query them. What makes this example special is that it is the search function you use every time you type some text into the "Search the docs" part of the SurrealDB documentation!…