top | item 37119971

Semantic Search-as-You-Type

16 points| generall | 2 years ago |qdrant.tech

2 comments

order

akmodi|2 years ago

This a interesting article!

How do you build the prefixes when multiple words share the same prefix?

If my understanding is correct, the method is:

1. Find common search terms

2. For each search term (eg test, compute it's vector [1.23, 4.56...] and it's prefixes [t, te, tes...])

3. Store these in Qdrant as t->[1.23, 4.56...] , te->[1.23, 4.56...] , tes->[1.23, 4.56...] and so on. Here, each of the prefixes are used as point_ids

4. When a search query comes in, call /recommend and pass in the partial query as the point id

andre-z|2 years ago

Made possible with Rust and a few optimization tricks.

- Qdrant as a vector search engine

- ONNX inference in Rust

- Embeddings cache & lookup

- Parallel & Batch requests

- Hybrid search with full-text filtering + vector re-scoring

Code repo https://github.com/qdrant/page-search