A Tale of Two Facets: MongoDB vs MarkLogic
In a recent blog post titled, “Faceted Search with MongoDB” users are guided through the process of creating a simple faceted search application for a bookstore catalogue. Rudimentary functionality is specified and restrictive assumptions are made to compensate for MongoDB’s deficiencies. These deficiencies have a measurable negative impact when developing applications in the context of an agile enterprise.
MarkLogic easily overcomes these deficiencies, offering enterprises a far greater ROE (return on effort). Developers are free to pursue higher value business tasks. There is no requirement to spend valuable time programming basic search features, like faceting, or bolting on 3rd party tools, which the author admits adds “Extra complexity due to adding another ‘moving part’ to your deployment.”
In its blog, MongoDB also made a surprising admission that:
Your application must deal with the fact that the system as a whole is now eventually consistent, with respect to the data stored in MongoDB versus the data stored in the external search engine. This may be undesirable, particularly for a product catalog that changes very frequently, for example.
With MarkLogic, there is also no requirement that facets be “well-known up front, and change rarely if at all” as was prescribed in the MongoDB example. There is no need to assume that the number of facets is small, the number of possible facet values is small, or that each item in the catalog will have only one facet value for each facet. ).” In fact, it isn’t hard to find many real world examples where documents need to be represented with more than one facet value in a facet. For example, songs can be classified in more than one genre, students can have more than one major and purchase orders can buy goods and services for more than one project. Finally, when using an ACID compliant or (what we call an Enterprise NoSQL database) like MarkLogic, your system is always consistent.
But why take my word for it? Readers are encouraged to visit “Building Faceted Search Applications with MarkLogic App Builder ” to see an alternate approach for rapidly building faceted search applications. Search and discovery is a core component of a new paradigm for building powerful information based, workflow oriented business applications. When built on MarkLogic, these applications can leverage Big Data volume, velocity and variety for operational efficiencies and new business opportunities. However, when developers and database architects must spend time building foundational features like faceted search for MongoDB applications, and integrating 3rd party and open source tools that add “moving part” complexity, Big Data becomes an enterprise albatross rather than a strategic asset.