Use a NoSQL Database to obtain an architectural advantage in specialized applications. NoSQL Databases offer many benefits including efficient scaling, fewer hardware requirements, flexible data models and fewer human resources required to manage the systems. Moreover, NoSQL databases are mostly all open source and can be downloaded and customized at little to no cost.
Use the SOLR database to index large amounts of content for advanced search functionality. SOLR search capabilities are built upon the Lucene database and include phrases, wildcards, joins, grouping etc. The database is highly optimized for high volume traffic and is highly scalable. SOLR indexes many types of data (JSON, CSV, XML, etc.) and includes rich document parsing (PDF, Word, Excel, etc.) SOLR is also a great option for using facets to achieve enterprise level filtering of data.
Use MongoDB to store documents by pairing keys with complex data. The data stored in these documents need not be structured, as each document is an independent unit that is stored and queried optimally by the database engine. MongoDB stands out from other document databases because of its many features including support for rich queries, full indexes and a minimal need for an ORM layer.
Use Neo4j to store complex information about data that can be represented as a network data model. As the world's most prominent graph database, Neo4j takes an intuitive and natural approach to structuring data. For projects requiring complex relationships Neo4j offers extremely optimized querying algorithms, as opposed to traditional RDBMS join queries.
Use the Redis database for highly optimized key-value storage of data. It can store varying data structures such as hashes, arrays, bitmaps, etc. which become serialized upon storage and unserialized upon retrieval. Redis is also an ideal solution for caching data to memory, such as web application views or temporary dynamic data that is updated at an interval.