While it does not support stemming, with fuzzy prefix matching, it will largely work and practically more useful.
No typo or fuzzy correction for Chinese text yet.
4,443 karma · joined October 20, 2010
kishore at typesense org https://calendly.com/kishorenc/30min
While it does not support stemming, with fuzzy prefix matching, it will largely work and practically more useful.
No typo or fuzzy correction for Chinese text yet.
Other libraries like Elastic offer more customization but also has a steeper learning curve.
It has not been wildly popular (mostly because I've not really started marketing it) but it's loved by those who use it.
While exploring how to support its development, there were only 2 options: either to offer a hosted version or premium features which will take some features away from the open source version (essentially open core).
A hosted version is essentially ruled out since it's a lot of work and will eventually be bettered by AWS :) Open core will mean crippling the main product in some ways.
Tricky choice. Eventually I ended up with a middle-ground. Offer a premium version but price it so reasonable (in my case 500 USD / year) that it becomes a no-brainer decision. The only downside to this approach is of course you can't probably run a company off it but it certainly can support 2-3 people comfortably IF it succeeds.
I've also been working on a light, fast, typo-tolerant search engine: https://github.com/typesense/typesense
It's been around for a couple of years now, and have a few happy customers who have had great success in replacing $X0,000/year popular hosted search with Typesense!
When he was diagnosed, I digged into Randy's old blog, and realized how little things have changed since then. There is now a new cocktail of Chemotherapy drugs, but apart from that we have hardly progressed on this front. I don't think we could have really saved him even with an early diagnosis.
Surgery seems to be the only permanent, generic cure as far as most cancers are concerned. But with Pancreas, from what I read, even that gave a very grim future (as in Randy's case). If at all you survive the Whipples, you will be entirely on expensive enzyme supplements for the rest of your life AND carry a significant risk of metastasis.
Most of my early carrier involved PHP, JavaScript and Python. I started appreciating type systems only when I began working on larger code bases. Types might slow you down initially but I personally find it very comforting to have that extra safety once the codebase crosses a certain size.
Most of the bad rep that statically typed languages get are from a bygone era that involved a lot of typing. That has changed a lot now. With better IDEs and languages with implicit type inference, it's a lot less verbose these days.
I have been writing a search engine in C++ (https://github.com/typesense/typesense/) and even C++ with the auto keyword and Clion IDE is no longer as verbose. And type safety has saved so many potential bugs.
However, for web development though, there are far less options. I hope more dynamically typed languages allow optional types in future. That's where the world is heading towards.
In India's case, the paper ballots actually caused a lot of rigging as booth capturing was ramptant. EVMs greatly helped tackle that.
A small sample of the votes are also verified using voter-verified paper audit trail (VVPAT).
Would love to hear your feedback.
https://github.com/typesense/typesense
Would love to hear your feedback :)
Would love to hear your feedback :)
With a trie, it's very efficient to calculate Levenshtein distances. Here's a post (http://stevehanov.ca/blog/?id=114) that has a good primer on that.
If you love this sort of thing, here's a fast and neat memory efficient Trie variant: https://db.in.tum.de/~leis/papers/ART.pdf (Adaptive Radix Tree).
I've used ART as a building block to create an open source typo tolerant search engine called Typesense (https://github.com/typesense/typesense).
The result: https://github.com/typesense/typesense
It took me over 3 years to get the nuts and bolts right. It's now production ready and being used in quite a few production environments. Of course, there is more work to do and so it's still actively being worked upon.
Disclosure: I work on a similar open source search engine (https://github.com/typesense/typesense)
In comparison, modern software development is almost all about composing or stitching together a bunch of different services. There are other complexities around orchestration and breadth of the systems involved, but very rarely one goes deep into a particular technical problem.
After a really long time, I'm getting a kick out of working on a highly technical problem: an open source search engine from scratch (https://github.com/typesense/typesense). It has been deeply rewarding and definitely something that's missing in a typical web oriented software development career today.
Ideally, one could offer both on-premise and hosted versions (like Gitlab), but that's really tricky and needs a lot of resources to pull off successfully.
Also, data engineering is a vast field. Pick an area that you would like to pursue first and go deep: Machine learning (feature extraction+training), Hadoop/Spark job processing, event streaming & aggregation etc.
Then try to find a entry level job that would allow you to apply what you learned and also get to expand your knowledge of running actual clusters.
I'm not planning to build a billion dollar startup out of Typesense, so I don't face the same problems that Mongo and ES do. I also don't plan to offer a hosted version of Typesense. If somebody else fills that void, I will happy to let them do that. For an infrastructure product, there will always be people who want to run it in-house -- there is enough $$$ to be made in that space.
Eventually, there will be certain premium features that maybe only 10% of people will really want, and I will charge for that. Playing the long game here.
An example closer to me: the search engine market is dominated by Elasticsearch, which is open source, extremely popular and is now even a public company. However, I decided to work on a small project called Typesense (https://github.com/typesense/typesense) to try and carve out a niche (and perhaps charge for it later).
I decided to take a dive simply because of the size of the market -- search is required in almost every SaaS application, and there are plenty of downsides to ES that can be addressed with a nimble, alternative search engine. And that's what I am doing :)
However, semantic search is a hard machine learning problem and it requires a good volume of search queries so that they can be mapped to the results returned and mine for patterns.
What's the middle ground? You can show a machine learning based "related searches" as a hint in the sidebar. That way, you can help the user construct their search phrases.
Shamless plug: if you like Algolia but would like to host the search engine yourself and don't want to manage Elasticsearch, take a look at Typesense: https://github.com/typesense/typesense
I've a question: how is Lambda School different from the other many other coding bootcamp programs (apart from the unique model of paying the fee only upon finding a job with adequate salary)?
For what it's worth, having closed sourced extensions for an open source licensed core product (in this case Redis) is the canonical definition of "open core", and this post does not really prove otherwise. Sure, there could be some minor variation here (with Redis Labs not owning Redis directly), but largely it's the same model for all practical purposes.