* Powerful real time search capability. SOLR can do partial matching search, phonetic search, synonym search and return the result instantly.
* Distributed architecture for scalability and availability.
* Open source with low cost of ownership
* CPU consumption can be high in some cases.
* No built-in monitoring and alerting function for production system.
If you need real time search of word or partial word, word synonyms, SOLR is for you. It is relatively easy to setup once you passed the not so great documentation and it is cost effective. The performance is good and very scalable.
We use SOLR for two difficult business challenges:
* Type ahead search. The application needs to build a short list of match words based on users input as they typing into a search field. The search field is unified search field, that means multiple data types to be searched. For example, the field can be built for search a person. As an user typing, front end client sends the partial input to SOLR to search person's first name, last name, phonetic and spelling variation of the names, social security number, bank account number, application IDs and so on. If an user typing first two letters of name "Mike" The search needs to return a list of matching words before user typing the third letter "k". The match word can be Mike, Micheal, McMillan or a system ID of MI12345.
* Record reconciliation. The application has data feeds from various data source and data needs to be annotated and cross reference to each other. One example is using SOLR to build a ranking system to identify the like-hood of two persons from two data sources are the same person in real world, based on social security number, name, gender, birthday, address, credit card number and so on. The data source may contain one or more above attributes for person identification.
SOLR enable us to build customizable search function quickly that perform and scale well. We had extensive research on other technologies, such as database text indexing and google search but found SOLR is the best match for our needs.