·RequestHandlers – handle a request at a URL like /select
·SearchComponents – part of a SearchHandler, a componentized request handler
–Includes, Query, Facet, Highlight, Debug, Stats
–Distributed Search capable
·UpdateHandlers – handle an indexing request
·Update Processor Chains – per-handler componentized chain that handle updates
·Query Parser plugins
–Mix and match query types in a single request
–Function plugins for Function Query
·Text Analysis plugins: Analyzers, Tokenizers, TokenFilters
·ResponseWriters serialize & stream response to client
· Each request handler can be mapped to a different URL
· SearchHandler is a componentized RequestHandler that allows search components to be chained together and also enables the framework for distributed search operations.
· Each Searchhandler can have it’s own custom set of search components, along with default or invariant parameters
· All of the configuration is declarative – including adding new request handlers or search components.
· The QueryResponse object is very generic and can handle returning any type of data
·Just like all request handlers, update handlers can be mapped to a specific URL and have their own set of default or invariant parameters.
· Each update handler can have it’s own Update Processor Chain that can do Document-level operations prior to indexing, or even redirect indexing to a different server or create multiple documents (or zero) from a single one.
· All of the configuration is declarative, including the specification of update processor chains.