﻿<!DOCTYPE html>
<!--[if IE]><![endif]-->
<html lang="en">
  
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <title>Welcome to the Lucene.Net website! | Apache Lucene.NET 4.8.0 </title>
    <meta name="viewport" content="width=device-width">
    <meta name="title" content="Welcome to the Lucene.Net website! | Apache Lucene.NET 4.8.0 ">
    <meta name="generator" content="docfx 2.50.0.0">
    
    <link rel="shortcut icon" href="logo/favicon.ico">
    <link rel="stylesheet" href="styles/docfx.vendor.css">
    <link rel="stylesheet" href="styles/docfx.css">
    <link rel="stylesheet" href="styles/main.css">
    <meta property="docfx:navrel" content="toc.html">
    <meta property="docfx:tocrel" content="toc.html">
    
    
    
    
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/academicons/1.8.0/css/academicons.min.css" integrity="sha512-GGGNUPDhnG8LEAEDsjqYIQns+Gu8RBs4j5XGlxl7UfRaZBhCCm5jenJkeJL8uPuOXGqgl8/H1gjlWQDRjd3cUQ==" crossorigin="anonymous">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css" integrity="sha512-SfTiTlX6kk+qitfevl/7LibUOeJWlt9rbyDn92a1DqWOw9vWG2MFoays0sgObmWazO5BQPiFucnnEAjpAB+/Sw==" crossorigin="anonymous">
    
    <link rel="stylesheet" href="//fonts.googleapis.com/css?family=Lato:400,700%7CMerriweather%7CRoboto+Mono">
    <link rel="stylesheet" href="/styles/site.css">
  
  </head>
  <body id="homepage" data-spy="scroll" data-target="#affix">
    <div id="wrapper">
      <header>
        
        <nav id="autocollapse" class="navbar ng-scope" role="navigation">
          <div class="container">
            <div class="navbar-header">
              <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#navbar">
                <span class="sr-only">Toggle navigation</span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
              </button>
              
              <a class="navbar-brand" href="index.html">
                <img id="logo" class="svg" src="logo/lucene-net-color.png" alt="">
              </a>
            </div>
            <div class="collapse navbar-collapse" id="navbar">
              <form class="navbar-form navbar-right" role="search" id="search">
                <div class="form-group">
                  <input type="text" class="form-control" id="search-query" placeholder="Search" autocomplete="off">
                </div>
              </form>
            </div>
          </div>
        </nav>
      </header>
      <section id="intro" class="home-section">
        <div class="container">
          <p class="text-center">Lucene.Net is a high performance search engine library for .NET</p>
          <div class="row">
              <div class="nuget-well col-xs-8 col-xs-offset-2 col-sm-6 col-sm-offset-3">
                  Install-Package Lucene.Net -Pre
              </div>
          </div>
          <div class="row">
              <div class="text-center project-links">
                  <a href="https://github.com/apache/lucenenet" target="_blank">
                      <i class="fa fa-github"></i>
                  </a>
                  <a href="http://mail-archives.apache.org/mod_mbox/lucenenet-dev/" target="_blank">
                      <i class="fa fa-envelope-o"></i>
                  </a>
                  <a href="https://stackoverflow.com/questions/tagged/lucene.net" target="_blank">
                      <i class="fa fa-stack-overflow"></i>
                  </a>
                  <a href="download/download.html">
                      <i class="fa fa-download" target="_blank"></i>
                  </a>
              </div>
          </div>
        </div>
      </section>
<section id="quick-start" class="home-section">
<div class="container">
<div class="row">
<div class="col-xs-12 col-md-6">
<p class="text-center">Create an index and define a text analyzer</p>
<pre class="clean">
<code class="csharp">// Ensures index backwards compatibility
var AppLuceneVersion = LuceneVersion.LUCENE_48;

var indexLocation = @"C:\Index";
var dir = FSDirectory.Open(indexLocation);

//create an analyzer to process the text
var analyzer = new StandardAnalyzer(AppLuceneVersion);

//create an index writer
var indexConfig = new IndexWriterConfig(AppLuceneVersion, analyzer);
var writer = new IndexWriter(dir, indexConfig);
</code>
</pre>
</div>
<div class="col-xs-12 col-md-6">
<p class="text-center">Add to the index</p>
<pre class="clean">
<code class="csharp">var source = new
{
    Name = "Kermit the Frog",
    FavoritePhrase = "The quick brown fox jumps over the lazy dog"
};
Document doc = new Document
{
    // StringField indexes but doesn't tokenize
    new StringField("name", 
        source.Name, 
        Field.Store.YES),
    new TextField("favoritePhrase", 
        source.FavoritePhrase, 
        Field.Store.YES)
};

writer.AddDocument(doc);
writer.Flush(triggerMerge: false, applyAllDeletes: false);
</code>
</pre></div>
</div>
<div class="row">
<div class="col-xs-12 col-md-6">
<p class="text-center">Construct a query</p>
<pre class="clean">
<code class="csharp">// search with a phrase
var phrase = new MultiPhraseQuery();
phrase.Add(new Term("favoritePhrase", "brown"));
phrase.Add(new Term("favoritePhrase", "fox"));
</code>
</pre>
</div>                    
<div class="col-xs-12 col-md-6">
<p class="text-center">Fetch the results</p>
<pre class="clean">
<code class="csharp">// re-use the writer to get real-time updates
var searcher = new IndexSearcher(writer.GetReader(applyAllDeletes: true));
var hits = searcher.Search(phrase, 20 /* top 20 */).ScoreDocs;
foreach (var hit in hits)
{
&nbsp;&nbsp;&nbsp;&nbsp;var foundDoc = searcher.Doc(hit.Doc);
&nbsp;&nbsp;&nbsp;&nbsp;hit.Score.Dump("Score");
&nbsp;&nbsp;&nbsp;&nbsp;foundDoc.Get("name").Dump("Name");
&nbsp;&nbsp;&nbsp;&nbsp;foundDoc.Get("favoritePhrase").Dump("Favorite Phrase");
}
</code>
</pre>
</div>
</div>
</div>
</section>      <section class="home-section">
        <div class="container">
          <div class="row">
            <div class="col-md-12">
              
<h2 id="about" class="text-center">About the project</h2>
<p>Lucene.Net is a port of the Lucene search engine library, written in C# and targeted at .NET runtime users</p>
<h3 id="our-goals">Our Goals</h3>
<ul>
<li>Maintain the existing line-by-line port from Java to C#, fully automating and commoditizing the process such that the project can easily synchronize with the Java Lucene release schedule</li>
<li>Maintaining the high-performance requirements expected of a first class C# search engine library</li>
<li>Maximize usability and power when used within the .NET runtime. To that end, it will present a highly idiomatic, carefully tailored API that takes advantage of many of the special features of the .NET runtime</li>
</ul>

            </div>
          </div>
        </div>
      </section>
      <section class="home-section books">
        <div class="container">
          <div class="row">
            <h2 id="books" class="text-center">Popular Books</h2>

            <div class="row">
              <div class="col-xs-12 col-md-6">
                <a href="https://www.amazon.com/Instant-Lucene-NET-Michael-Heydt-ebook/dp/B00E7NC9EG" target="_blank"><img src="https://images-na.ssl-images-amazon.com/images/I/51ovFeqMwBL.jpg"></a>
              </div>
              <div class="col-xs-12 col-md-6">
                <a href="https://www.amazon.com/Lucene-4-Cookbook-Edwood-Ng-ebook/dp/B00ZPJWC9S" target="_blank"><img src="https://images-na.ssl-images-amazon.com/images/I/51uIsUPhaeL.jpg"></a>
              </div>
            </div>
            
            
    
          </div>
        </div>
      </section>
      <section class="home-section">
        <div class="container">
          <div class="row"></div>
        </div>
      </section>
      
      <footer>
        <div class="grad-bottom"></div>
        <div class="footer">
          <div class="container">
            <span class="pull-right">
              <a href="#top">Back to top</a>
            </span>
            Copyright © 2019 The Apache Software Foundation, Licensed under the <a href='http://www.apache.org/licenses/LICENSE-2.0' target='_blank'>Apache License, Version 2.0</a><br> <small>Apache Lucene.Net, Lucene.Net, Apache, the Apache feather logo, and the Apache Lucene.Net project logo are trademarks of The Apache Software Foundation. <br>All other marks mentioned may be trademarks or registered trademarks of their respective owners.</small>
            
          </div>
        </div>
      </footer>
    </div>
    
    <script type="text/javascript" src="styles/docfx.vendor.js"></script>
    <script type="text/javascript" src="styles/docfx.js"></script>
    <script type="text/javascript" src="styles/main.js"></script>
  </body>
</html>