Faceted search with firebase

207 views
Skip to first unread message

Yasir Panjsheri

unread,
Sep 28, 2017, 10:00:52 AM9/28/17
to Firebase Google Group
I have been doing some research for my app. The app's main functionality is the search functionality (faceted search). From my readings I found that Firebase is not much query capable, and that we have to include a third party library such as , ElasticSearch. not to forget to mention that I am new to all this. so I wanted to ask couple of questions:

1) Most of what I found from googling, is that they associate Elasticsearch with firebase cloud functions, Do I really need use cloud functions with elasticsearch to achieve faceted search ?

2) I also found this: https://www.npmjs.com/package/quiver-firebase-search. Is it good enough to follow to achieve faceted search. This also requires to configure a billing account for the Google cloud project.


I guess what I am trying to understand here is a concise explanation of what I have to do to fully understand this. My app is a mobile application intended to be build in React Native Framework. it supposed to have Full text search with faceted capabilities and aggregations (All , People, Industry, Groups, Events, Locations). The app is fairly complex, or at least for me.. Looking forward to your help guys, Thank you.

Kato Richardson

unread,
Sep 28, 2017, 2:28:59 PM9/28/17
to Firebase Google Group
Hey Yasir,

This is going to be hard to offer any useful advice on, as it's really a matter of preference and your app's specific needs. A tool like ElasticSearch or Algolia is going to offer robust, expandable, future proofed solutions that can grow with your app. They also have a substantial learning curve to mastery. Note that quiver-firebase-search appears to just be a lib to abstract the implementation of Algolia or ES and not an alternative.

The reason Functions is recommended here is that it simplifies things by removing the need for you to manage a server stack and all the integrations. You just write a few lines of code and we manage the stack.  See how simple this can be in this example. But you can always manage this yourself if that seems more appropriate or cost effective. See firebase-queue for a roll-your-own.

You could always try using startAt() and endAt() in creative ways, or applying some NoSQL data modeling techniques. If the searches you need are limited enough in scope, this may work, as a quick and dirty answer to get you up and running, but you may have to migrate to a robust answer if your app grows substantially.

I hope that's more helpful than confusing.

☼, Kato

--
You received this message because you are subscribed to the Google Groups "Firebase Google Group" group.
To unsubscribe from this group and stop receiving emails from it, send an email to firebase-talk+unsubscribe@googlegroups.com.
To post to this group, send email to fireba...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/firebase-talk/b092ebc2-e783-4d20-b58a-a66724cdf6b2%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.



--

Kato Richardson | Developer Programs Eng | kato...@google.com | 775-235-8398

Reply all
Reply to author
Forward
0 new messages