Open joepio opened 3 months ago
Another possible approach: Generate JSON file at runtime and use off-the-shelf search engine server to read the data.
- user could choose their own each engine like Algolia, Meilisearch...
That would work as a fallback, but it would not integrate with the front-end. I think AtomicServer should provide a good out-of-the-box experience.
Out of the box, Tantivy only support latin languages. We could add some extra tokenizers:
Chinese (tantivy-jieba and cang-jie), Japanese (lindera, Vaporetto, and tantivy-tokenizer-tiny-segmenter) and Korean (lindera + lindera-ko-dic-builder)
I'm not sure if tokenizers can be combined. It doesn't look like it...
Tokenizer-specific fields
Problem with this approach is that it is very inefficient, it makes the search DB way bigger for every extra tokenizer we have
One Tokenizer To Rule Them All
Not sure if this is possible. We now use the
SimpleTokenizer
, but that is apparently not good for Chinese chars.Select tokenizer as config option
We can make the user decide when booting up AtomicServer. This would add some code complexity. It would not work for mixed language instances.