Apache Solr Interview Questions
Apache Solr Interview Question And Answers:
Apache Solr is a standalone full-text search platform to perform searches on multiple websites and index documents using XML and HTTP. Built on a Java Library called Lucence, Solr supports a rich schema specification for a wide range and offers flexibility in dealing with different document fields. It also consists of an extensive search plugin API for developing custom search behavior.
Solrconfig.xml file contains configuration for data directory.
schema.xml file contains definition of the field types and fields of documents.
- Allows Scalable, high performance indexing Near real-time indexing
- Standards-based open interfaces like XML, JSON and HTTP
- Flexible and adaptable faceting
- Advanced and Accurate full-text search
- Linearly scalable, auto index replication, auto failover and recovery
- Allows concurrent searching and updating
- Comprehensive HTML administration interfaces
- Provides cross-platform solutions that are index-compatible
Supported by Apache Software Foundation, Apache Lucene is a free, open-source, high-performance text search engine library written in Java by Doug Cutting. Lucence facilitates full-featured searching, highlighting, indexing and spellchecking of documents in various formats like MS Office docs, HTML, PDF, text docs and others.
When a user runs a search in Solr, the search query is processed by a request handler. SolrRequestHandler is a Solr Plugin, which illustrates the logic to be executed for any request.Solrconfig.xml file comprises several handlers (containing a number of instances of the same SolrRequestHandler class having different configurations).
Also known as Lucence Parser, the Solr standard query parser enables users to specify precise queries through a robust syntax. However, the parser’s syntax is vulnerable to many syntax errors unlike other error-free query parsers like DisMax parser.
Field type defines how Solr would interpret data in a field and how that field can be queried.
A field type includes four types of information:
- Name of field type
- Field attributes
- An implementation class name
- If the field type is Text Field , a description of the field analysis for the field type.
As the name suggests, Faceting is the arrangement and categorization of all search results based on their index terms. The process of faceting makes the searching task smoother as users can look for the exact results.
Dynamic Fields are a useful feature if users by any chance forget to define one or more fields. They allow excellent flexibility to index fields that have not been explicitly defined in the schema.
Working with textual data in Solr, Field Analyzer reviews and checks the filed text and generates a token stream. The pre-process of analyzing of input text is performed at the time of searching or indexing and at query time. Most Solr applications use Custom Analyzers defined by users. Remember, each Analyzer has only one Tokenizer. You can define an analyzer in the application using the below syntax:
It is used to split a stream of text into a series of tokens, where each token is a subsequence of characters in the text. The token produced are then passed through Token Filters that can add, remove or update the tokens. Later,that field is indexed by the resulting token stream.
Apache Solr facilitates fault-tolerant, high-scalable searching capabilities that enable users to set up a highly-available cluster of Solr servers. These capabilities are well revered as SolrCloud.
It is used to describe how to populate fields with data copied from another field.
Highlighting refers to the fragmentation of documents matching the user’s query included in the query response. These fragments are then highlighted and placed in a special section, which is used by clients and users to present the snippets. Solr consists of a number of highlighting utilities having control over different fields. The highlighting utilities can be called by Request Handlers and reused with standard query parsers.
There are 3 highlighters in Solr:
- Standard Highlighter: provides precise matches even for advanced queryparsers.
- FastVector Highlighter: Though less advanced than Standard Highlighter, it works better for more languages and supports Unicode breakiterators.
- Postings Highlighter: Much more precise, efficient and compact than the above vector one but inappropriate for a more number of query terms.
It is used to generate statistics over the results of arbitrary numeric functions.
Execute $ bin/Solr –helpto see how to use the bin/Solr script.
$ bin/solr stop -p 8983 is used to stop Solr.
$ bin/solr start –f is used to start Solr in foreground.
$ bin/solr status is used to check Solr running status.
$ bin/solr start is used to start the server.
Solr is shut down from the same terminal where it was launched. Click Ctrl+C to shut it down.
Schema declares –
- how to index and search each field
- what kinds of fields are available
- what fields are required
- what field should be used as the unique/primary key