# Similarity Search roadmap
The module aim at providing highly optimized methods to perform exact or approximate nearest neighbors query in time series databases. A time series database can either be a collection of time series stored in memory, as a file on disk, or even an actual database accessible via an API. The goal of the module is to allow applications using similarity search (e.g. Retrieval Augmented Generation (RAG) using such time series DB, K-NN classification, some motif search methods ...) to have an unique API to try and experiment for choosing the similarity search method that best satisfy their use case.
To this end, we propose the following short and long terms goals:
## Short term goal
- Re-define the module base structure to be more aligned with the stated module objective, removing the parts that were concerning motif search/discovery. This will reduce the module scope, making it easier to maintain and develop.
- Update documentation with relevant example for both whole series and subsequence similarity search applications.
- Define a base class structure to allow to support different type of time series database (in memory, on file, REST API etc...) for the module estimators.
## Long term goal
- Implement different methods from the state of the art, such as all similarity-search methods developed in the context of the matrix profile, the iSAX familly of methods and others.
- Have estimators that support distance measure (elastic and not) for exact methods, and estimators that propose heuristics for both cases for the approximate case.
- Look for a standard way to benchmark the module method in the litterature. If none exists or are not satisfying, we would need to propose a new method.
- Propose pratical examples on how to use the module with different open source time series or vector databases (e.g. Milvus).