datenanfragen / desktop-app

MIT License
0 stars 1 forks source link

Local search engine #9

Closed baltpeter closed 2 years ago

baltpeter commented 2 years ago

(This also applies to the mobile app.)

We want to make it possible to use the apps without a network connection. One major thing missing for that is the company database. It shouldn't be too hard to bundle the companies into an archive that users can download and update every once in a while. But we still need to find a client-side replacement for Typesense.

Features we need (WIP):

Nice-to-haves for feature parity with website:

Additional nice-to-haves:

Search engines I've considered (WIP):

baltpeter commented 2 years ago

Random idea (not sure whether it's a good one): If we don't find anything suitable, wouldn't it be possible to compile Typesense to wasm? :D

baltpeter commented 2 years ago

Let's do a table:

MiniSearch FlexSearch ItemsJS Lunr.js Elasticlunr.js
Typo tolerance yes no no annoying ("Fuzziness is applied by appending a tilde ( ~) and then a positive integer to a term.")
Return full document in results yes yes only returns reference?
Setting which fields to query by yes
Sort by setting no? yes
Highlighting no (1, 2) no no annoying (returns index) no?
Adapter for instantsearch no no third-party no
Token separators workaround
Filtering & faceting workaround filtering
Exporting the processed index yes yes
baltpeter commented 2 years ago

This doesn't look good. I haven't filled in everything since highlighting seems to be the deciding factor here. Lunr is the only one that seems to support that at all (and only in an annoying way).