ES and MongoDB for filtering out objects

(Matan Safriel) #1


Still optimistic about making my first installation dance!topic/elasticsearch/ntbd5U6NBVo (and
looking at hosted 'forget about servers' alternatives, i.e. Heroku) I'd
like to address the following more high level question:
What can be said about the search performance of elasticsearch v.s.
MongoDB. Hypothetically both store data objects that have fields and
values, and allow querying that body of objects.

So presumably *filtering *out subsets of the objects according to fields
selected ad-hoc, is something fit for both. I'm initially looking at
filtering simultaneously by more than a single field - put differently, the
filtering criteria would typically comprise anywhere between 1 and 4
fields, maybe slightly more in some cases. Whereas the fields chosen as
filters would be a subset of a much larger amount of fields. Picture some
20 field names existing, and each query is an attempt to filter the objects
by few fields out of those overall 20 fields (It can be less or more than
20 overall field names existing, I just used this number to demonstrate the
ratio of fields to fields used as filters in every discrete query). The
type of filtering can be by the existence of the chosen fields, as well as
by the field values, e.g. filtering out objects that have field A, and
their field B is between x and y, and their field C is equal to w.

Perhaps in elasticsearch *indexes *need to be defined, but maybe even
without indexes speed is at par with that of MongoDB.
I'm not yet aware that either of the two scales out better or worse than
the other.

What do you think?
And, have you experimented this aspect?



(system) #2