<!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.9">
<meta name="Forrest-skin-name" content="lucene">
<title>Site Linkmap Table of Contents</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> &gt; <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">&nbsp; 
                      <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">

             &nbsp;
           </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_1.2', 'skin/')" id="menu_1.2Title" class="menutitle">Documentation</div>
<div id="menu_1.2" class="menuitemgroup">
<div class="menuitem">
<a href="features.html">Features</a>
</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 class="menuitem">
<a href="api/test-framework/index.html">Test Framework 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 class="menuitem">
<a href="http://incubator.apache.org/connectors/">ManifoldCF</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&amp;utm_medium=spons&amp;utm_content=pod&amp;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.packtpub.com/solr-3-1-enterprise-search-server-cookbook/book"><img border="0" title="Book: Apache Solr 3.1 Cookbook" alt="Book: Apache Solr 3.1 Cookbook - logo" src="images/solr_31_cookbook.jpg" style="width: 150px;height: 180px;"></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="linkmap.pdf"><img alt="PDF -icon" src="skin/images/pdfdoc.gif" class="skin"><br>
        PDF</a>
</div>
<h1>Site Linkmap Table of Contents</h1>
<p>
          This is a map of the complete site and its structure.
        </p>
<ul>
<li>
<a>Solr</a>&nbsp;&nbsp;___________________&nbsp;&nbsp;<em>site</em>
</li>
<ul>
   
  
<ul>
<li>
<a>About</a>&nbsp;&nbsp;___________________&nbsp;&nbsp;<em>about</em>
</li>
<ul>
    
<ul>
<li>
<a href="index.html">Welcome</a>&nbsp;&nbsp;___________________&nbsp;&nbsp;<em>index</em>&nbsp;: Welcome to Solr</li>
</ul>
    
<ul>
<li>
<a href="http://lucene.apache.org/java/docs/whoweare.html">Who We Are</a>&nbsp;&nbsp;___________________&nbsp;&nbsp;<em>index</em>&nbsp;: Lucene/Solr Committers</li>
</ul>
  
</ul>
</ul>

  
<ul>
<li>
<a>Documentation</a>&nbsp;&nbsp;___________________&nbsp;&nbsp;<em>docs</em>
</li>
<ul>
    
<ul>
<li>
<a href="features.html">Features</a>&nbsp;&nbsp;___________________&nbsp;&nbsp;<em>features</em>
</li>
</ul>
    
<ul>
<li>
<a href="tutorial.html">Tutorial</a>&nbsp;&nbsp;___________________&nbsp;&nbsp;<em>tutorial</em>
</li>
</ul>
    
<ul>
<li>
<a href="http://wiki.apache.org/solr/FrontPage">Docs (Wiki)</a>&nbsp;&nbsp;___________________&nbsp;&nbsp;<em>wiki</em>
</li>
</ul>
    
<ul>
<li>
<a href="http://wiki.apache.org/solr/FAQ">FAQ</a>&nbsp;&nbsp;___________________&nbsp;&nbsp;<em>faq</em>
</li>
</ul>
    
<ul>
<li>
<a href="api/index.html">All Javadoc</a>&nbsp;&nbsp;___________________&nbsp;&nbsp;<em>apidocs</em>
</li>
</ul>
    
<ul>
<li>
<a href="api/solrj/index.html">SolrJ Javadoc</a>&nbsp;&nbsp;___________________&nbsp;&nbsp;<em>apidocs</em>
</li>
</ul>
    
<ul>
<li>
<a href="api/test-framework/index.html">Test Framework Javadoc</a>&nbsp;&nbsp;___________________&nbsp;&nbsp;<em>apidocs</em>
</li>
</ul>
  
</ul>
</ul>

  
<ul>
<li>
<a>Resources</a>&nbsp;&nbsp;___________________&nbsp;&nbsp;<em>resources</em>
</li>
<ul>
    
<ul>
<li>
<a href="http://www.apache.org/dyn/closer.cgi/lucene/solr/">Download</a>&nbsp;&nbsp;___________________&nbsp;&nbsp;<em>download</em>
</li>
</ul>
    
<ul>
<li>
<a href="mailing_lists.html">Mailing Lists</a>&nbsp;&nbsp;___________________&nbsp;&nbsp;<em>contact</em>
</li>
</ul>
    
<ul>
<li>
<a href="issue_tracking.html">Issue Tracking</a>&nbsp;&nbsp;___________________&nbsp;&nbsp;<em>issues</em>
</li>
</ul>
    
<ul>
<li>
<a href="version_control.html">Version Control</a>&nbsp;&nbsp;___________________&nbsp;&nbsp;<em>svn</em>
</li>
</ul>
  
</ul>
</ul>
  
  
<ul>
<li>
<a>Related Projects</a>&nbsp;&nbsp;___________________&nbsp;&nbsp;<em>projects</em>
</li>
<ul>
    
<ul>
<li>
<a href="http://lucene.apache.org/java/">Lucene Java</a>&nbsp;&nbsp;___________________&nbsp;&nbsp;<em>lucene</em>
</li>
</ul>
    
<ul>
<li>
<a href="http://lucene.apache.org/nutch/">Nutch</a>&nbsp;&nbsp;___________________&nbsp;&nbsp;<em>lucene</em>
</li>
</ul>
    
<ul>
<li>
<a href="http://incubator.apache.org/connectors/">ManifoldCF</a>&nbsp;&nbsp;___________________&nbsp;&nbsp;<em>lucene</em>
</li>
</ul>
  
</ul>
</ul>
  
  

  


</ul>
</ul>
</div>
<!--+
    |end content
    +-->
<div class="clearboth">&nbsp;</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 &copy;
         2007 <a href="http://www.apache.org/licenses/">The Apache Software Foundation.</a>
</div>
<!--+
    |end bottomstrip
    +-->
</div>
</body>
</html>
