HNHacker News
TopNewBestAskShowJobs

karterk

4,443 karma · joined October 20, 2010

Co-founder @ typesense.org

kishore at typesense org https://calendly.com/kishorenc/30min

submissionscomments
karterk··on Trump tells reporters aboard Air Force One he is banning TikTok
If that is the case, then so many people should be using Twitter and Google in China, where they are banned. Fact is 99% of people will not bother using a VPN to access TikTok -- anyway clones will appear pretty soon and they will grab the market.
karterk··on LWN pays $300 for a well-written article from new authors
DigitalOcean started this trend but this has now become a very crowded space with other hosting providers like Linode etc. using the same strategy.
karterk··on RediSearch – Redis Powered Search Engine
Thanks, it seems like read-only replication is supported. I've updated my comment.
karterk··on RediSearch – Redis Powered Search Engine
> A counter-point to yours would be how Amazon's search is horrible

Citation needed as well :) What I actually meant is that for a class of use cases like e-commerce, search is an important feature with a direct impact on revenue. For example, search in e-commerce enables product discovery. So a downtime hits your revenue directly.

karterk··on RediSearch – Redis Powered Search Engine
> Cluster Support and Commercial Version: RediSearch has a distributed cluster version that can scale to billions of documents and hundreds of servers. However, it is only available as part of Redis Labs Enterprise.

This is a bummer because high availability is really important for many search uses cases. For e.g. think about e-commerce where search literally prints money.

EDIT: it seems like the open source version supports a read-only replica for failover but my overall thoughts about not crippling/compromising the clustering story in open source version still stands.

While I understand the rationale for this move, unfortunately not having HA in a non-starter.

I had a similar temptation when open-sourcing Typesense (https://github.com/typesense/typesense) and thought long and hard about keeping clustering as part of a closed source commercial edition but eventually decided against it. I understand that commercialising certain features is a necessarily evil and trade-offs must be made. However, I think there are still many avenues to do that without keeping clustering closed source.

Apart from that, I am happy to see the search space heating up with a lot more interesting options.

Disclosure: I have stakes in the open source search eco-system (https://github.com/typesense/typesense) but a genuine Redis fan.

karterk··on Algolia introduces pay-as-you-go pricing for search
Thanks for the feedback. Synonyms is on the immediate roadmap, but not available at the moment.

> Is it also possible to control typo sensitivity

You can control overall number of typose with ?num_typos=1 -- there is no way to define min chars for a specific typo. The engine does make some intelligent decisions to optimize. For example, for a 2 letter query it does not use a num_typos=2 even if that is specified.

Glad to hear about the setup. Will continue to improve.

karterk··on Queues are Databases (1995)
I don't know about the implementation details, but MySQL now has a RocksDB based storage engine[1] now.

[1]: https://myrocks.io/

karterk··on Algolia introduces pay-as-you-go pricing for search
Thanks it's back up now.
karterk··on Algolia introduces pay-as-you-go pricing for search
Typesense supports a lot of features needed for e-commerce including complex ones like filtering on facet values.
karterk··on Algolia introduces pay-as-you-go pricing for search
I've been working on an open source alternative. It's dead simple to setup and run (including raft based clustering). It also integrates seamlessly with Instantsearch.js library. Would love to hear your feedback on Typesense: https://github.com/typesense/typesense
karterk··on Algolia introduces pay-as-you-go pricing for search
I've been working on an open source alternative. It's dead simple to setup and run (including raft based clustering). It also integrates seamlessly with Instantsearch.js library.

Would love to hear your feedback on Typesense: https://github.com/typesense/typesense

karterk··on Ask HN: What’s the coolest thing you have built
I've been working on a fast typo tolerant search engine (https://github.com/typesense/typesense) for 4 years.

It initially started off with a question of "Why is ES so difficult to grok and manage?". Then I started researching around various data structures for efficiently storing text and numerical values and various algorithms for sorting the data in real time to surface relevant documents.

After 4 years of development, the project is pretty stable but I'm still adding features and has been getting some traction finally. I recently added a raft based replication aka clustering. I used a production ready Raft library for that, but it was still very nice to understand the nitty gritties of the Raft implementation.

I doubt I would build something more complicated ever, but who knows right :)

karterk··on A tiny static full-text search engine using Rust and WebAssembly (2019)
Really cool. Reading through your incremental discoveries (aka going down the rabbit hole!) reminded me of my own adventure with building a typo tolerant search engine (you can see it here: https://github.com/typesense/typesense).

What began as a simple side project 4 years ago has consumed a significant part of my free time over the last couple of years.

Web assembly is certainly going to open a lot of new avenues for doing interesting things on the browser.

karterk··on Tell HN: Interviewed with Triplebyte? Your profile is about to become public
Please make this opt-in and not opt-out.
karterk··on Ask HN: Dear open source devs how do you sustain yourself
I've been working on Typesense (https://github.com/typesense/typesense) a developer-friendly typo-tolerant search engine that has found some love recently.

While my work is currently done outside my core working hours, I've been exploring if it is possible to make it self-sustainable and have been reading about a few other people who have been successful at this. I think the trick is to make it possible for people to pay you in one or more ways:

a) Don't ask for donations, but offer a support contract. It's easier for devs to get that approved.

b) Offer a hosted version at a reasonable price. Sell the convenience -- of course, this might not be feasible if your open source tool is not easy to offer as a hosted service.

c) Offer some premium features as a paid product. Companies are again happy to purchase a premium version if the pricing is not ridiculous (e.g. $500/year will be a no-brainer) and you can also throw in additional support.

d) Get a company to sponsor a feature if it is something that they badly want.

e) Charge for adding a company's logo in the Github repository as a less intrusive form of advertising.

f) Use your open source code and popularity to get a better paying job with work-life balance. Indirect monetization but hey, that's pretty legit.

g) Find a company that allows you to work on an open source project full time. Not too many companies do it but if your interests/strengths overlap with a project (e.g. Kubernetes) that you contribute to, this could be an option.

karterk··on AWS services to avoid
Can't believe Cloudwatch wasn't mentioned here. Could be such a useful product that is so messed up that there is probably multiple billion dollar companies in this space.
karterk··on AWS EC2 General Price Cut
PR speak aside, it looks like they are trying to get people to switch to certain regions, perhaps which are not popular with lot of idle machines? The popular locations like Oregon and Virginia don't have much discounts to offer.
karterk··on In Search of an Understandable Consensus Algorithm (2014) [pdf]
To reduce deployment complexity. One or the primary goals of Typesense is simplicity. While writing a raft implementation myself would have been tricky, integrating with a consensus library made sense.
karterk··on In Search of an Understandable Consensus Algorithm (2014) [pdf]
Raft has spawned a huge ecosystem of consensus libraries across various languages. This has 'democratized' the consensus algorithm and has made it easier to build distributed systems.

Is it perfect? No, as another comment here points out, Raft might not be as fast as some other more complicated Paxos variants but that's okay for most use cases and is much easier to reason about.

To give an example of how powerful this is, I started implementing high availability for an opensource instant search engine I've been working on (https://github.com/typesense/typesense) and was able to get a basic clustering solution working in just a few days.

Pre-raft this would have taken a few weeks or would have required an external coordinator like Zookeeper. This way, Raft has unlocked so many opportunities.

karterk··on Static Sites with Elasticsearch
Agree 100%, very close to launching that (within 2 weeks!).
karterk··on Static Sites with Elasticsearch
If you're looking to do the same on something that's easier to run and manage than ES, consider using Typesense: https://github.com/typesense/typesense

The primary benefits are simplicity, typo tolerance and ability to expose the search engine directly to the front end without having to put it behind an ELB as described in this post for Elasticsearch.

P.S: I work on this.

karterk··on Ask HN: How can I pick a side project and stick with it?
Since so many people are sharing their story, I will share mine. 5-6 years ago, I started working on Typesense (https://github.com/typesense/typesense), an open source, typo tolerant search engine designed for speed and developer productivity.

In the past 5 years, my journey has brought me through my wedding, the birth of my first child, losing a loved family member, a job switch and so on. Nevertheless, it has been really great seeing the project gain traction and motivate me to keep working on it through the highs and lows. Everybody differs, but I think for me the following 2 things kept me going:

a) Pick a project that you are sufficiently motived.

b) Don't set deadlines but have a plan to work on the project everyday. One some days it will be hours, on other days it will be just thinking about a problem at the back of your mind for a few minutes, but the idea is to keeping at it.

Now nearly 5 years later, I'm still not done yet but I'm amazed how much I've achieved by just showing up every single day.

karterk··on MeiliSearch: Zero-config alternative to Elasticsearch, made in Rust
If you are looking for alternatives, check out Typesense as well:

https://github.com/typesense/typesense

It supports multiple filters and has HA for reads as well.

karterk··on MeiliSearch: Zero-config alternative to Elasticsearch, made in Rust
If you are looking for alternatives, check out Typesense as well:

https://github.com/typesense/typesense

karterk··on Typesense: Open-Source Alternative to Algolia
Thanks, this has been fixed.
karterk··on Typesense: Open-Source Alternative to Algolia
Typesense does support faceted search. Look for the `facet_by` example in this section: https://typesense.org/docs/0.11.1/api/#search-collection
karterk··on Typesense: Open-Source Alternative to Algolia
> Typesense use a default_sorting_field on each document, it means that before indexing your documents you need to compute a relevancy score for typesense to be able to sort them based on your needs

This is not entirely true. You can just use a field with a constant value (say 100) as the default sorting field and Typesense will just use the text based relevancy. Please update your comment.

The reason why Typesense does insist on one, though is that it's always a good idea to have a field that indicates popularity of a record (or a proxy to it). It makes search so much better.

karterk··on Typesense: Open-Source Alternative to Algolia
I agree with everything you've said. I was a bit sloppy in not mentioning the trade-offs. My "fast enough" remark was certainly not for handling large datasets. The parent comment had asked why Lucene was not used for Typesense and my response was specifically to that point. Typesense targets a different set of use cases involving small-medium datasets where an interactive search experience is importnat.
karterk··on Typesense: Open-Source Alternative to Algolia
Definitely going to work on that.
karterk··on Typesense: Open-Source Alternative to Algolia
Likely an integration with an existing popular UI search library.
← PreviousPage 4 of 18Next →