Use Meilisearch as the search backend
MeiliSearch is a RESTful search API. It aims to be a ready-to-go solution for everyone who wants a fast and relevant search experience for their end-users
Features
Blazing fast (answers < 50 milliseconds): Priority is given to fast answers for a smooth search experience.
Search as you type: Results are updated on each keystroke. To make this possible, we use prefix-search.
Typo tolerance: Understands typoes and misspellings.
Tokenization in English, Chinese, and all languages that uses space as a word divider.
Return the whole document: The entire document is returned upon search.
Highly customizable search and indexation:
Custom ranking: Customize the relevancy of the search engine and the ranking of the search results.
Stop words: Ignore common non-relevant words like of or the.
Highlighting: Highlighted search results in documents
Synonyms: define synonyms for a better search experience.
RESTful API
Integrated web interface: allows you to test your search settings without implementing a front-end
Benefits
Fixes #45 (closed) #40 (closed) #38 (closed) #34 (closed) #33 (closed) #20 (closed) #36 (closed)
Usable non-Latin search and fuzzy search
Also, minimum code maintanence will be required, since the search box in the webpage simply follows the template. The backend, i.e. the meilisearch, is not written by us. We only need to maintain the vagrant file
Implementation
It will drop search.f-droid.org, replacing by a meilisearch server. The search box experience will be kept, which directly requests the meilisearch server and shows the results in a drop-down box
- Use Meilisearch's doc-sraper to index the static pages up on website generation. Meilisearch itself uses this scraper to build their search index for their docs.
- Use doc-searchbar.js to provide the instant search bar
Alternatives comparation
https://typesense.org/typesense-vs-algolia-vs-elasticsearch-vs-meilisearch/