Creating a great search engine with Meteor


#1

in my team we are thinking of having an application that allows a user to search different types of services provided by doctors (in my country there is nothing like that and there are many doctors who are unemployed) but many filters are needed and good search engine to find the service that an user really need.

MongoDB is not recommended to do that, what should I do?


#2

Use PostGreSQL


#3

What are the main advantages of PostgreSQL?


#4

Why is MongoDB not recommended?


#5

You could use mongodb to model, store and manage the data and elasticsearch to project searches on it.

IMHO, no sql/nosql database is fit for production level search anyway.


#6

I need to query with titles, descriptions, locations, qualifications, regex is not scalable and support having mongodb for fulltextsearch is not very good


#7

You might consider taking a look at https://www.algolia.com/ if you want to build a tool with advanced search capabilities. I found it to be very easy to integrate with Meteor and the response times are also insanely fast even when searching over a large number of records.

There is even a package for it on Atmosphere - https://atmospherejs.com/acemtp/algolia


#8

it’s very stable and easy to manage and has been used in many production level applications.


#9

Algolia is like elasticSearch ?


#10

+1 for ElasticSearch. I believe @JonJamz has a package for it


Resources/Blogs/Threads on elasticsearch and meteor?
#11

elasticsearch is pretty much an industry standard for fast searching at scale. Bulletproof Meteor has a good lesson on using it with meteor and they’ve got a package for searching that’s compatible with it https://meteorhacks.com/implementing-an-instant-search-solution-with-meteor

some reasons to pick elastic over mongodb

  • fuzzy search
  • prefix matching
  • custom implementation of scoring
  • all fields are indexed by default
  • phrase matching (“run” matches “ran” matches “runs”)