Skip to content

This issue was moved to a discussion.

You can continue the conversation there. Go to discussion →

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

[Feature request]: use Algolia and their React components for search by facets and text #1037

Closed
viktor-yunenko opened this issue Jun 9, 2024 · 2 comments

Comments

@viktor-yunenko
Copy link

viktor-yunenko commented Jun 9, 2024

Contact Details

shelf-nu.spoilage840@silomails.com

Is your feature request related to a problem? Please describe?

The existing search isn't practical.

Describe the solution you'd like

Their react/vue/angular components are highly mature, well documented, and work out of the box.

The facets are ideal for including all custom fields out of the box, as well as value, location, dates, etc. The full-text search from their index is practically only delayed by the network, ie 10-20ms.

Here's their example of React drop-in components for fuzzy matching and faceting: https://codesandbox.io/p/sandbox/github/algolia/instantsearch/tree/master/examples/react/default-theme?file=%2Fsrc%2FApp.tsx

The integration can be as short as a day, omitting the styling. WIth the current design I would estimate another day or two for the styling.

The price is as good as cheap for commercial projects, ie it's easy to include in the subscription. And for the self-hosted customers, it can be free due to the project's license - they don't require extra docs besides an email and a link to GitHub, at least it's been the case in the last ~5 years.

I've integrated it on short timelines into more than a dozen projects of various complexity and different js frameworks, and still qualify it as one of the best ROI for startup projects.

Describe alternatives you've considered

  • elasticsearch - overcomplicated for this use case, and it's easy to underestimate UI logic implementation.
  • postgres full text - same case as elasticsearch, and requires careful index management.

I haven't reviewed the newest search engines since 1-2 years ago, though from my periodic skims I haven't encountered something suitable for this use case.

Additional context

No response

@viktor-yunenko
Copy link
Author

If i stick to this project i'm likely do an MVP for internal usage

At the moment even with 20 assets i'm becoming painfully aware of the lack of text-search and facets :)

@DonKoko
Copy link
Contributor

DonKoko commented Jun 10, 2024

hey @victor-yunenko . Thanks for opening an issue and your suggestions.

We also have experience with algolia and I completely agree with you. It is amazing both in terms of DX and UX and we would love to integrate something like this. However there are some challenges in terms of data structure and security that are stopping us from integrating it at this point. After all, our users have their private data and managing all data from all users in a singular index is not an option. That means we have to create an index for each user which means running algolia would not be cheap at all. We haven't counted it out

Currently we actually have postgres full text search combined with a postgres view for assets, however that is limited. You can search in most asset fields and separate your queries by space as explained in the tooltip, but I agree with you. This is far from ideal.
Screenshot 2024-06-10 at 10 12 24

Currently the two options we are considering is the following:

  • Elastic search - which we can self host. Will require quite some setup but will be pretty straight forward. Issue with adding something like this is that it makes the project quite more complex to setup for self-hosted and I always try to be very cautious about this.
  • Indexed DB - the other option I have been thinking about is taking advantage of the constantly growing and improving browser features, namely the indexed DB. The concept there would be that when the user starts a session, we load the data from the DB and once its loaded the search is done via the indexed DB.

You seem very experienced with search and I would love to hear what you think about our ideas and we are open to any input.

P.S. I will change this to a discussion so we can keep track of it on the long term and hopefully other people can chip in as well.

@Shelf-nu Shelf-nu locked and limited conversation to collaborators Jun 10, 2024
@DonKoko DonKoko converted this issue into discussion #1039 Jun 10, 2024

This issue was moved to a discussion.

You can continue the conversation there. Go to discussion →

Projects
None yet
Development

No branches or pull requests

2 participants