Solr is an open source enterprise search server based on the Lucene Java search library, with XML/HTTP and JSON APIs, faceted search, caching, hit highlighting, replication, a web administration interface and many more features. Solr runs in a Java servlet container such as Tomcat.
Solr is written in Java and runs as a standalone full-text search server within a servlet container such as Tomcat. Solr uses the Lucene Java search library at its core for full-text indexing and search, and has REST-like HTTP/XML and JSON APIs that make it easy to use from virtually any programming language.
Solr's powerful external configuration allows it to be tailored to almost any type of application without Java coding, and it has an extensive plugin architecture when more advanced customization is required.
Here are some key features of "Solr":
· Advanced Full-Text Search Capabilities
· Optimized for High Volume Web Traffic
· Standards Based Open Interfaces - XML and HTTP
· Comprehensive HTML Administration Interfaces
· Server statistics exposed over JMX for monitoring
· Scalability - Efficient Replication to other Solr Search Servers
· Flexible and Adaptable with XML configuration
· Extensible Plugin Architecture
· A Real Data Schema, with Numeric Types, Dynamic Fields, Unique Keys
· Powerful Extensions to the Lucene Query Language
· Support for Dynamic Faceted Browsing and Filtering
· Advanced, Configurable Text Analysis
· Highly Configurable and User Extensible Caching
· Performance Optimizations
· External Configuration via XML
· An Administration Interface
· Monitorable Logging
· Fast Incremental Updates and Snapshot Distribution
· Distributed search with sharded index on multiple hosts
· XML and CSV/delimited-text update formats
· Easy ways to pull in data from databases and XML files from local disk and HTTP sources
· Multiple search indices
· Defines the field types and fields of documents
· Can drive more intelligent processing
· Declarative Lucene Analyzer specification
· Dynamic Fields enables on-the-fly addition of new fields
· CopyField functionality allows indexing a single field multiple ways, or combining multiple fields into a single searchable field
· Explicit types eliminates the need for guessing types of fields
· External file-based configuration of stopword lists, synonym lists, and protected word lists
· Many additional text analysis components including word splitting, regex and sounds-like filters
· HTTP interface with configurable response formats (XML/XSLT, JSON, Python, Ruby)
· Sort by any number of fields
· Advanced DisMax query parser for high relevancy results from user-entered queries
· Highlighted context snippets
· Faceted Searching based on unique field values and explicit queries
· Spelling suggestions for user queries
· More Like This suggestions for given document
· Constant scoring range and prefix queries - no idf, coord, or lengthNorm factors, and no restriction on the number of terms the query matches.
· Function Query - influence the score by a function of a field's numeric value or ordinal
· Date Math - specify dates relative to "NOW" in queries and updates
· Performance Optimizations
· Pluggable query handlers and extensible XML data format
· Document uniqueness enforcement based on unique key field
· Batches updates and deletes for high performance
· User configurable commands triggered on index changes
· Searcher concurrency control
· Correct handling of numeric types for both sorting and range queries
· Ability to control where docs with the sort field missing will be placed
· "Luke" request handler for corpus information
· Configurable Query Result, Filter, and Document cache instances
· Pluggable Cache implementations
· Cache warming in background
· Autowarming in background
· Fast/small filter implementation
· User level caching with autowarming support
· Efficient distribution of index parts that have changed via rsync transport
· Pull strategy allows for easy addition of searchers
· Configurable distribution interval allows tradeoff between timeliness and cache utilization
· Comprehensive statistics on cache utilization, updates, and queries
· Text analysis debugger, showing result of every stage in an analyzer
· Web Query Interface w/ debugging output
What's New in This Release: [ read full changelog ]
· New SolrJ client connector using Apache Http Components http client (SOLR-2020)
· Many analyzer factories are now "multi term query aware" allowing for things like field type aware lowercasing when building prefix & wildcard queries. (SOLR-2438)
· New Kuromoji morphological analyzer tokenizes Japanese text, producing both compound words and their segmentation. (SOLR-3056)
· Range Faceting (Dates & Numbers) is now supported in distributed search (SOLR-1709)
· HTMLStripCharFilter has been completely re-implemented, fixing many bugs and greatly improving the performance (LUCENE-3690)
· StreamingUpdateSolrServer now supports the javabin format (SOLR-1565)
· New LFU Cache option for use in Solr's internal caches. (SOLR-2906)
· Memory performance improvements to all FST based suggesters (SOLR-2888)
· New WFSTLookupFactory suggester supports finer-grained ranking for suggestions. (LUCENE-3714)
· New options for configuring the amount of concurrency used in distributed searches (SOLR-3221)
· Many bug fixes