mirror of https://github.com/apache/lucene.git
515 lines
16 KiB
HTML
Executable File
515 lines
16 KiB
HTML
Executable File
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
|
<html>
|
|
<head>
|
|
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
|
<meta content="Apache Forrest" name="Generator">
|
|
<meta name="Forrest-version" content="0.8">
|
|
<meta name="Forrest-skin-name" content="lucene">
|
|
<title>Introduction to The Solr Enterprise Search Server</title>
|
|
<link type="text/css" href="skin/basic.css" rel="stylesheet">
|
|
<link media="screen" type="text/css" href="skin/screen.css" rel="stylesheet">
|
|
<link media="print" type="text/css" href="skin/print.css" rel="stylesheet">
|
|
<link type="text/css" href="skin/profile.css" rel="stylesheet">
|
|
<script src="skin/getBlank.js" language="javascript" type="text/javascript"></script><script src="skin/getMenu.js" language="javascript" type="text/javascript"></script><script src="skin/fontsize.js" language="javascript" type="text/javascript"></script>
|
|
<link rel="shortcut icon" href="images/favicon.ico">
|
|
</head>
|
|
<body onload="init()">
|
|
<script type="text/javascript">ndeSetTextSize();</script>
|
|
<div id="top">
|
|
<!--+
|
|
|breadtrail
|
|
+-->
|
|
<div class="breadtrail">
|
|
<a href="http://www.apache.org/">apache</a> > <a href="http://lucene.apache.org/">lucene</a><script src="skin/breadcrumbs.js" language="JavaScript" type="text/javascript"></script>
|
|
</div>
|
|
<!--+
|
|
|header
|
|
+-->
|
|
<div class="header">
|
|
<!--+
|
|
|start group logo
|
|
+-->
|
|
<div class="grouplogo">
|
|
<a href="http://lucene.apache.org/"><img class="logoImage" alt="Lucene" src="images/lucene_green_150.gif" title="Apache Lucene"></a>
|
|
</div>
|
|
<!--+
|
|
|end group logo
|
|
+-->
|
|
<!--+
|
|
|start Project Logo
|
|
+-->
|
|
<div class="projectlogo">
|
|
<a href="http://lucene.apache.org/solr/"><img class="logoImage" alt="Solr" src="images/solr.jpg" title="Solr Description"></a>
|
|
</div>
|
|
<!--+
|
|
|end Project Logo
|
|
+-->
|
|
<!--+
|
|
|start Search
|
|
+-->
|
|
<div class="searchbox">
|
|
<form id="searchform" action="http://search.lucidimagination.com/p:solr" method="get" class="roundtopsmall">
|
|
<input onFocus="getBlank (this, 'Search the site with Solr');" size="25" name="q" id="query" type="text" value="Search the site with Solr">
|
|
<input onclick="selectProvider(this.form)" name="Search" value="Search" type="submit">
|
|
@
|
|
<select id="searchProvider" name="searchProvider"><option value="any">select provider</option><option value="lucid">Lucid Find</option><option value="sl">Search-Lucene</option></select>
|
|
</form>
|
|
</div>
|
|
<!--+
|
|
|end search
|
|
+-->
|
|
<!--+
|
|
|start Tabs
|
|
+-->
|
|
<ul id="tabs">
|
|
<li class="current">
|
|
<a class="selected" href="index.html">Main</a>
|
|
</li>
|
|
<li>
|
|
<a class="unselected" href="http://wiki.apache.org/solr/FrontPage">Wiki</a>
|
|
</li>
|
|
</ul>
|
|
<!--+
|
|
|end Tabs
|
|
+-->
|
|
</div>
|
|
</div>
|
|
<div id="main">
|
|
<div id="publishedStrip">
|
|
<!--+
|
|
|start Subtabs
|
|
+-->
|
|
<div id="level2tabs"></div>
|
|
<!--+
|
|
|end Endtabs
|
|
+-->
|
|
<script type="text/javascript"><!--
|
|
document.write("Last Published: " + document.lastModified);
|
|
// --></script>
|
|
</div>
|
|
<!--+
|
|
|breadtrail
|
|
+-->
|
|
<div class="breadtrail">
|
|
|
|
|
|
</div>
|
|
<!--+
|
|
|start Menu, mainarea
|
|
+-->
|
|
<!--+
|
|
|start Menu
|
|
+-->
|
|
<div id="menu">
|
|
<div onclick="SwitchMenu('menu_1.1', 'skin/')" id="menu_1.1Title" class="menutitle">About</div>
|
|
<div id="menu_1.1" class="menuitemgroup">
|
|
<div class="menuitem">
|
|
<a href="index.html" title="Welcome to Solr">Welcome</a>
|
|
</div>
|
|
<div class="menuitem">
|
|
<a href="http://lucene.apache.org/java/docs/whoweare.html" title="Lucene/Solr Committers">Who We Are</a>
|
|
</div>
|
|
</div>
|
|
<div onclick="SwitchMenu('menu_selected_1.2', 'skin/')" id="menu_selected_1.2Title" class="menutitle" style="background-image: url('skin/images/chapter_open.gif');">Documentation</div>
|
|
<div id="menu_selected_1.2" class="selectedmenuitemgroup" style="display: block;">
|
|
<div class="menupage">
|
|
<div class="menupagetitle">Features</div>
|
|
</div>
|
|
<div class="menuitem">
|
|
<a href="tutorial.html">Tutorial</a>
|
|
</div>
|
|
<div class="menuitem">
|
|
<a href="http://wiki.apache.org/solr/FrontPage">Docs (Wiki)</a>
|
|
</div>
|
|
<div class="menuitem">
|
|
<a href="http://wiki.apache.org/solr/FAQ">FAQ</a>
|
|
</div>
|
|
<div class="menuitem">
|
|
<a href="api/index.html">All Javadoc</a>
|
|
</div>
|
|
<div class="menuitem">
|
|
<a href="api/solrj/index.html">SolrJ Javadoc</a>
|
|
</div>
|
|
</div>
|
|
<div onclick="SwitchMenu('menu_1.3', 'skin/')" id="menu_1.3Title" class="menutitle">Resources</div>
|
|
<div id="menu_1.3" class="menuitemgroup">
|
|
<div class="menuitem">
|
|
<a href="http://www.apache.org/dyn/closer.cgi/lucene/solr/">Download</a>
|
|
</div>
|
|
<div class="menuitem">
|
|
<a href="mailing_lists.html">Mailing Lists</a>
|
|
</div>
|
|
<div class="menuitem">
|
|
<a href="issue_tracking.html">Issue Tracking</a>
|
|
</div>
|
|
<div class="menuitem">
|
|
<a href="version_control.html">Version Control</a>
|
|
</div>
|
|
</div>
|
|
<div onclick="SwitchMenu('menu_1.4', 'skin/')" id="menu_1.4Title" class="menutitle">Related Projects</div>
|
|
<div id="menu_1.4" class="menuitemgroup">
|
|
<div class="menuitem">
|
|
<a href="http://lucene.apache.org/java/">Lucene Java</a>
|
|
</div>
|
|
<div class="menuitem">
|
|
<a href="http://lucene.apache.org/nutch/">Nutch</a>
|
|
</div>
|
|
</div>
|
|
<script type="text/javascript">
|
|
function selectProvider(form) {
|
|
provider = form.elements['searchProvider'].value;
|
|
if (provider == "any") {
|
|
if (Math.random() > 0.5) {
|
|
provider = "lucid";
|
|
} else {
|
|
provider = "sl";
|
|
}
|
|
}
|
|
|
|
if (provider == "lucid") {
|
|
form.action = "http://search.lucidimagination.com/p:solr";
|
|
} else if (provider == "sl") {
|
|
form.action = "http://search-lucene.com/solr";
|
|
}
|
|
|
|
days = 365; // cookie will be valid for a year
|
|
date = new Date();
|
|
date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
|
|
expires = "; expires=" + date.toGMTString();
|
|
document.cookie = "searchProvider=" + provider + expires + "; path=/";
|
|
}
|
|
|
|
if (document.cookie.length>0) {
|
|
cStart=document.cookie.indexOf("searchProvider=");
|
|
if (cStart!=-1) {
|
|
cStart=cStart + "searchProvider=".length;
|
|
cEnd=document.cookie.indexOf(";", cStart);
|
|
if (cEnd==-1) {
|
|
cEnd=document.cookie.length;
|
|
}
|
|
provider = unescape(document.cookie.substring(cStart,cEnd));
|
|
document.forms['searchform'].elements['searchProvider'].value = provider;
|
|
}
|
|
}
|
|
</script>
|
|
<div id="credit"></div>
|
|
<div id="roundbottom">
|
|
<img style="display: none" class="corner" height="15" width="15" alt="" src="skin/images/rc-b-l-15-1body-2menu-3menu.png"></div>
|
|
<!--+
|
|
|alternative credits
|
|
+-->
|
|
<div id="credit2">
|
|
<a href="http://www.packtpub.com/solr-1-4-enterprise-search-server?utm_source=http%3A%2F%2Flucene.apache.org%2Fsolr%2F&utm_medium=spons&utm_content=pod&utm_campaign=mdb_000275"><img border="0" title="Book: Solr 1.4 Enterprise Search Server" alt="Book: Solr 1.4 Enterprise Search Server - logo" src="images/solr-book-image.jpg" style="width: 150px;height: 185px;"></a><a href="http://www.lucidimagination.com/Downloads/LucidWorks-for-Solr/Reference-Guide?sc=AP"><img border="0" title="LucidWorks for Solr Certified Distribution Reference Guide" alt="LucidWorks for Solr Certified Distribution Reference Guide - logo" src="images/lucidworks_reference_guide.png" style="width: 150px;height: 185px;"></a>
|
|
</div>
|
|
</div>
|
|
<!--+
|
|
|end Menu
|
|
+-->
|
|
<!--+
|
|
|start content
|
|
+-->
|
|
<div id="content">
|
|
<div title="Portable Document Format" class="pdflink">
|
|
<a class="dida" href="features.pdf"><img alt="PDF -icon" src="skin/images/pdfdoc.gif" class="skin"><br>
|
|
PDF</a>
|
|
</div>
|
|
<h1>Introduction to The Solr Enterprise Search Server</h1>
|
|
<div id="minitoc-area">
|
|
<ul class="minitoc">
|
|
<li>
|
|
<a href="#Solr+in+a+Nutshell">Solr in a Nutshell</a>
|
|
</li>
|
|
<li>
|
|
<a href="#Solr+Uses+the+Lucene+Search+Library+and+Extends+it%21">Solr Uses the Lucene Search Library and Extends it!</a>
|
|
</li>
|
|
<li>
|
|
<a href="#Detailed+Features">Detailed Features</a>
|
|
<ul class="minitoc">
|
|
<li>
|
|
<a href="#Schema">Schema</a>
|
|
</li>
|
|
<li>
|
|
<a href="#Query">Query</a>
|
|
</li>
|
|
<li>
|
|
<a href="#Core">Core</a>
|
|
</li>
|
|
<li>
|
|
<a href="#Caching">Caching</a>
|
|
</li>
|
|
<li>
|
|
<a href="#Replication">Replication</a>
|
|
</li>
|
|
<li>
|
|
<a href="#Admin+Interface">Admin Interface</a>
|
|
</li>
|
|
</ul>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
|
|
|
|
<a name="N1000D"></a><a name="Solr+in+a+Nutshell"></a>
|
|
<h2 class="boxed">Solr in a Nutshell</h2>
|
|
<div class="section">
|
|
<p>
|
|
Solr is a standalone enterprise search server with a REST-like API. You put documents in it (called "indexing") via XML, JSON or binary over HTTP. You query it via HTTP GET and receive XML, JSON, or binary results.
|
|
</p>
|
|
<ul>
|
|
|
|
<li> Advanced Full-Text Search Capabilities </li>
|
|
|
|
<li> Optimized for High Volume Web Traffic </li>
|
|
|
|
<li> Standards Based Open Interfaces - XML,JSON and HTTP </li>
|
|
|
|
<li> Comprehensive HTML Administration Interfaces </li>
|
|
|
|
<li> Server statistics exposed over JMX for monitoring </li>
|
|
|
|
<li> Scalability - Efficient Replication to other Solr Search Servers </li>
|
|
|
|
<li> Flexible and Adaptable with XML configuration </li>
|
|
|
|
<li> Extensible Plugin Architecture </li>
|
|
|
|
</ul>
|
|
</div>
|
|
|
|
|
|
<a name="N10032"></a><a name="Solr+Uses+the+Lucene+Search+Library+and+Extends+it%21"></a>
|
|
<h2 class="boxed">Solr Uses the Lucene Search Library and Extends it!</h2>
|
|
<div class="section">
|
|
<ul>
|
|
|
|
<li> A Real Data Schema, with Numeric Types, Dynamic Fields, Unique Keys </li>
|
|
|
|
<li> Powerful Extensions to the Lucene Query Language </li>
|
|
|
|
<li> Faceted Search and Filtering </li>
|
|
|
|
<li> Geospatial Search </li>
|
|
|
|
<li> Advanced, Configurable Text Analysis </li>
|
|
|
|
<li> Highly Configurable and User Extensible Caching </li>
|
|
|
|
<li> Performance Optimizations </li>
|
|
|
|
<li> External Configuration via XML </li>
|
|
|
|
<li> An Administration Interface </li>
|
|
|
|
<li> Monitorable Logging </li>
|
|
|
|
<li> Fast Incremental Updates and Index Replication </li>
|
|
|
|
<li> Highly Scalable Distributed search with sharded index across multiple hosts </li>
|
|
|
|
<li> JSON, XML, CSV/delimited-text, and binary update formats </li>
|
|
|
|
<li> Easy ways to pull in data from databases and XML files from local disk and HTTP sources </li>
|
|
|
|
<li> Rich Document Parsing and Indexing (PDF, Word, HTML, etc) using Apache Tika </li>
|
|
|
|
<li> Apache UIMA integration for configurable metadata extraction </li>
|
|
|
|
<li> Multiple search indices </li>
|
|
|
|
</ul>
|
|
</div>
|
|
|
|
|
|
<a name="N1006F"></a><a name="Detailed+Features"></a>
|
|
<h2 class="boxed">Detailed Features</h2>
|
|
<div class="section">
|
|
<a name="N10075"></a><a name="Schema"></a>
|
|
<h3 class="boxed">Schema</h3>
|
|
<ul>
|
|
|
|
<li>Defines the field types and fields of documents</li>
|
|
|
|
<li>Can drive more intelligent processing</li>
|
|
|
|
<li>Declarative Lucene Analyzer specification</li>
|
|
|
|
<li>Dynamic Fields enables on-the-fly addition of new fields</li>
|
|
|
|
<li>CopyField functionality allows indexing a single field multiple ways, or combining multiple fields into a single searchable field</li>
|
|
|
|
<li>Explicit types eliminates the need for guessing types of fields</li>
|
|
|
|
<li>External file-based configuration of stopword lists, synonym lists, and protected word lists</li>
|
|
|
|
<li>Many additional text analysis components including word splitting, regex and sounds-like filters</li>
|
|
|
|
</ul>
|
|
<a name="N10096"></a><a name="Query"></a>
|
|
<h3 class="boxed">Query</h3>
|
|
<ul>
|
|
|
|
<li>HTTP interface with configurable response formats (XML/XSLT, JSON, Python, Ruby, PHP, Velocity, binary)</li>
|
|
|
|
<li>Sort by any number of fields, and by complex functions of numeric fields</li>
|
|
|
|
<li>Advanced DisMax query parser for high relevancy results from user-entered queries</li>
|
|
|
|
<li>Highlighted context snippets</li>
|
|
|
|
<li>Faceted Searching based on unique field values, explicit queries, date ranges, and numeric ranges</li>
|
|
|
|
<li>Multi-Select Faceting by tagging and selectively excluding filters</li>
|
|
|
|
<li>Spelling suggestions for user queries</li>
|
|
|
|
<li>More Like This suggestions for given document</li>
|
|
|
|
<li>Function Query - influence the score by user specified complex functions of
|
|
numeric fields or query relevancy scores.</li>
|
|
|
|
<li>Range filter over Function Query results</li>
|
|
|
|
<li>Date Math - specify dates relative to "NOW" in queries and updates</li>
|
|
|
|
<li>Dynamic search results clustering using Carrot2</li>
|
|
|
|
<li>Numeric field statistics such as min, max, average, standard deviation </li>
|
|
|
|
<li>Combine queries derived from different syntaxes</li>
|
|
|
|
<li>Auto-suggest functionality for completing user queries</li>
|
|
|
|
<li>Allow configuration of top results for a query, overriding normal scoring and sorting</li>
|
|
|
|
<li>Performance Optimizations</li>
|
|
|
|
</ul>
|
|
<a name="N100D2"></a><a name="Core"></a>
|
|
<h3 class="boxed">Core</h3>
|
|
<ul>
|
|
|
|
<li>Dynamically create and delete document collections without restarting</li>
|
|
|
|
<li>Pluggable query handlers and extensible XML data format</li>
|
|
|
|
<li>Pluggable user functions for Function Query</li>
|
|
|
|
<li>Customizable component based request handler with distributed search support</li>
|
|
|
|
<li>Document uniqueness enforcement based on unique key field</li>
|
|
|
|
<li>Duplicate document detection, including fuzzy near duplicates</li>
|
|
|
|
<li>Custom index processing chains, allowing document manipulation before indexing</li>
|
|
|
|
<li>User configurable commands triggered on index changes</li>
|
|
|
|
<li>Ability to control where docs with the sort field missing will be placed</li>
|
|
|
|
<li>"Luke" request handler for corpus information</li>
|
|
|
|
</ul>
|
|
<a name="N100F9"></a><a name="Caching"></a>
|
|
<h3 class="boxed">Caching</h3>
|
|
<ul>
|
|
|
|
<li>Configurable Query Result, Filter, and Document cache instances</li>
|
|
|
|
<li>Pluggable Cache implementations, including a lock free, high concurrency implementation</li>
|
|
|
|
<li>Cache warming in background
|
|
<ul>
|
|
<li> When a new searcher is opened, configurable searches are run against
|
|
it in order to warm it up to avoid
|
|
slow first hits. During warming, the current searcher handles live requests.
|
|
</li>
|
|
</ul>
|
|
|
|
</li>
|
|
|
|
<li>Autowarming in background
|
|
<ul>
|
|
|
|
<li>The most recently accessed items in the caches of the current
|
|
searcher are re-populated in the new searcher, enabling high cache hit
|
|
rates across index/searcher changes.</li>
|
|
|
|
</ul>
|
|
|
|
</li>
|
|
|
|
<li>Fast/small filter implementation</li>
|
|
|
|
<li>User level caching with autowarming support</li>
|
|
|
|
</ul>
|
|
<a name="N1011E"></a><a name="Replication"></a>
|
|
<h3 class="boxed">Replication</h3>
|
|
<ul>
|
|
|
|
<li>Efficient distribution of index parts that have changed</li>
|
|
|
|
<li>Pull strategy allows for easy addition of searchers</li>
|
|
|
|
<li>Configurable distribution interval allows tradeoff between timeliness and cache utilization</li>
|
|
|
|
<li>Replication and automatic reloading of configuration files</li>
|
|
|
|
</ul>
|
|
<a name="N10133"></a><a name="Admin+Interface"></a>
|
|
<h3 class="boxed">Admin Interface</h3>
|
|
<ul>
|
|
|
|
<li>Comprehensive statistics on cache utilization, updates, and queries</li>
|
|
|
|
<li>Interactive schema browser that includes index statistics</li>
|
|
|
|
<li>Replication monitoring</li>
|
|
|
|
<li>Full logging control</li>
|
|
|
|
<li>Text analysis debugger, showing result of every stage in an analyzer</li>
|
|
|
|
<li>Web Query Interface w/ debugging output
|
|
<ul>
|
|
|
|
<li>parsed query output</li>
|
|
|
|
<li>Lucene explain() document score detailing</li>
|
|
|
|
<li>explain score for documents outside of the requested range to debug why a given document wasn't ranked higher.</li>
|
|
|
|
</ul>
|
|
|
|
</li>
|
|
|
|
</ul>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<!--+
|
|
|end content
|
|
+-->
|
|
<div class="clearboth"> </div>
|
|
</div>
|
|
<div id="footer">
|
|
<!--+
|
|
|start bottomstrip
|
|
+-->
|
|
<div class="lastmodified">
|
|
<script type="text/javascript"><!--
|
|
document.write("Last Published: " + document.lastModified);
|
|
// --></script>
|
|
</div>
|
|
<div class="copyright">
|
|
Copyright ©
|
|
2007 <a href="http://www.apache.org/licenses/">The Apache Software Foundation.</a>
|
|
</div>
|
|
<!--+
|
|
|end bottomstrip
|
|
+-->
|
|
</div>
|
|
</body>
|
|
</html>
|