Lucene DotNet

Olá, estou fazendo uma pesquisa referente ao lucene .NET, consegui entender a parte teórica, mas não consegui achar nenhuma prática que eu possa ver como o código funciona para a indexação, alguém poderia me ajudar com isso ?
Obrigado

Bom aqui está um exemplo do uso do Lucene Apache

Primeiro você tem que ir no Manager Console e importar a Lucene, digite o seguinte comando Install-package Lucene.net

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using Lucene.Net.Analysis;
using Lucene.Net.Analysis.Standard;
using Lucene.Net.Documents;
using Lucene.Net.Index;
using Lucene.Net.QueryParsers;
using Lucene.Net.Search;
using Lucene.Net.Store;
using Directory = Lucene.Net.Store.Directory;
using Version = Lucene.Net.Util.Version;

namespace LuceneNetVideo.Demo
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Demonstração Lucene.net");
            //Cria um documento
            var fordFiesta = new Document();
            fordFiesta.Add(new Field("Codigo", "1", Field.Store.YES, Field.Index.NOT_ANALYZED));
            fordFiesta.Add(new Field("Marca", "Ford", Field.Store.YES, Field.Index.ANALYZED));
            fordFiesta.Add(new Field("Modelo", "Fiesta", Field.Store.YES, Field.Index.ANALYZED));

            var fordFocus = new Document();
            fordFocus.Add(new Field("Codigo", "2", Field.Store.YES, Field.Index.NOT_ANALYZED));
            fordFocus.Add(new Field("Marca", "Ford", Field.Store.YES, Field.Index.ANALYZED));
            fordFocus.Add(new Field("Modelo", "Focus", Field.Store.YES, Field.Index.ANALYZED));

            var vauxhallAstra = new Document();
            vauxhallAstra.Add(new Field("Codigo", "3", Field.Store.YES, Field.Index.NOT_ANALYZED));
            vauxhallAstra.Add(new Field("Marca", "Vauxhall", Field.Store.YES, Field.Index.ANALYZED));
            vauxhallAstra.Add(new Field("Modelo", "Astra", Field.Store.YES, Field.Index.ANALYZED));
            ;




            //Directory Criando o diretorio
            // FSDirectory Cria uma fabrica de diretorios
            Directory directory = FSDirectory.Open(new DirectoryInfo
                (Environment.CurrentDirectory + "\\LuceneIndex"));


            // O analisador basicamente transforma o nosso texto em tokens, que são armazenados em nosso índice.
            Analyzer analyzer = new StandardAnalyzer(Version.LUCENE_29);

            // Escrever o documento para o indice
            var writer = new IndexWriter(directory, analyzer, true, IndexWriter.MaxFieldLength.LIMITED);
            writer.AddDocument(fordFiesta);
            writer.AddDocument(fordFocus);
            writer.AddDocument(vauxhallAstra);

            writer.Optimize();
            writer.Close();

            /**
             *  é definida a indexWriter dizendo para usar o nosso directory'diretorio', e anlyzer
             *  em seguida chamamos todos os documentos para o indexWriter 
             * 
             * otimyze indice de pesquisa
             * 
             */



            // Abrindo o  indice de pesquisa
            IndexReader indexReader = IndexReader.Open(directory, true);
            Searcher indexSearch = new IndexSearcher(indexReader);
            /**
             * Procura o indice recem criado
             */


            // Cria a consulta de pesquisa
            var queryParser = new QueryParser(Version.LUCENE_29, "Marca", analyzer);
            var query = queryParser.Parse("For*");


            //Realizando a Busca
            Console.WriteLine("Procurar por: " + query);
            TopDocs resultDocs = indexSearch.Search(query, indexReader.MaxDoc());
            Console.WriteLine("Resultados encontrados: " + resultDocs.totalHits);



            // Mostrando os resultados de pesquisa
            var hits = resultDocs.scoreDocs;
            foreach (var hit in hits)
            {
                var documentFromSarch = indexSearch.Doc(hit.doc);
                Console.WriteLine(documentFromSarch.Get("Marca") + " " + documentFromSarch.Get("Modelo"));
            }

            Console.ReadLine();
        }
    }
}