Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

How do you choose the right search tool? #134

Open
Cleop opened this issue Aug 10, 2023 · 3 comments
Open

How do you choose the right search tool? #134

Cleop opened this issue Aug 10, 2023 · 3 comments
Labels
question A question needs to be answered before progress can be made on this issue

Comments

@Cleop
Copy link
Member

Cleop commented Aug 10, 2023

I can see from the README that Elasticsearch is your proposed search tool. I am currently researching a new search tool for an e-commerce platform and wanting to learn about the good, the bad and the ugly of what's on offer.

The things I'm considering are:

  • it can be paid for (but I will be weighing up value for money)
  • it needs to be future-proof (ideally we don't want to replace this again in a few years time!)
  • it needs to be relatively quick to set up (2-3 months) and not require large amounts of ongoing support
  • it needs to have a business-facing UI so that merchandisers etc. can add new filters etc. without requiring an engineer
  • it needs to offer a great user experience e.g. synonym detection, typo tolerance, personalisation of search results etc.

And this is where wading through 3rd parties starts to get a bit tougher because of the number of buzzwords out there and everyone trademarking their own 'unique' algorithm 🤯

Typesense have created this lovely feature comparison table which is the clearest representation I've seen so far.

It says of Elasticsearch:

Elasticsearch is a large piece of software, that takes non-trivial amount of effort to setup, administer, scale and fine-tune. It offers you a few thousand configuration parameters to get to your ideal configuration. So it's better suited for large teams who have the bandwidth to get it production-ready, regularly monitor it and scale it, especially when they have a need to store billions of documents and petabytes of data (eg: logs).

I've looked a little into Klevu, Constructor.io, Algolia and Typesense.

The questions in my head are:

  • Is end to end vector search really worth paying for? (rather than keyword search)
  • What makes these companies different from one another?

Any thoughts on any of the above would be greatly appreciated to help me choose the right search tool. I think that vector search certainly seems to offer some interesting potential for new features for the e-commerce site. However, with companies making their pricing so opaque, I'm trying to discern how much is worth paying for and what that cost will be!

@nelsonic, @SimonLab, @RobStallion, @samhstn, don't suppose you've got any thoughts on this one?

@Cleop Cleop added the question A question needs to be answered before progress can be made on this issue label Aug 10, 2023
@Cleop
Copy link
Member Author

Cleop commented Aug 17, 2023

Our focus is zooming in on Algolia, Constructor.io and Typesense. I will add more details on analysis when I'm able.

@Cleop
Copy link
Member Author

Cleop commented Sep 7, 2023

Our feature analysis led us to the following conclusions:

  • Algolia came out top on features and whilst expensive were considerably cheaper than Constructor.
  • Typesense have a really strong offering in terms of their search capability and are definitely the most cost effective BUT they do not have a user-friendly merchandiser UI (it requires merchandisers to be able to amend settings in a json style format, something which we don't think is easily accessible for our team). If we had more time we could invest in building out our own merchandiser's UI but unfortunately that's not an option for us at present.
  • We ranked Constructor bottom for features and they were also the most expensive. They seemed the worst option for these reasons.

Klevu's search capabilities seemed behind the other companies mentioned. Whilst they claimed to utilise AI and perform natural language processing they made no indication of having a data model from which they mapped their vectors/ nearest neighbours. And when testing one of their customer's site I found several poorly performing searches. It was a clothes site and 'shorts' appeared before 'chinos' or 'joggers' in a search for 'trousers'. The site had a visor hat, but when I searched for 'hat' the visor did not show up. I played around with a few examples and these kinds of flaws showed up several times.

@nelsonic
Copy link
Member

@Cleop did you end up using Typesense? 💭

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
question A question needs to be answered before progress can be made on this issue
Projects
None yet
Development

No branches or pull requests

2 participants