Lucene2.1 的官方示例代码

时间:2022-04-23
本文章向大家介绍Lucene2.1 的官方示例代码,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Text;

using System.Windows.Forms;



using Lucene.Net;

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 Lucene.Net.Util;


namespace LuceneTest

{

    public partial class Form1 : Form

    {

        public Form1()

        {

            InitializeComponent();

        }


        private void Form1_Load(object sender, EventArgs e)

        {

            Test();

        }



        void Test() 

        {

            Analyzer analyzer = new StandardAnalyzer();



            // Store the index in memory:

            Directory directory = new RAMDirectory();

            // To store an index on disk, use this instead (note that the 

            // parameter true will overwrite the index in that directory

            // if one exists):

            //Directory directory = FSDirectory.getDirectory("/tmp/testindex", true);

            IndexWriter iwriter = new IndexWriter(directory, analyzer, true);

           

            iwriter.SetMaxFieldLength(25000);

            Document doc = new Document();

            String text = "This is the text to be indexed.";

            doc.Add(new Field("fieldname", text, Field.Store.YES,

                Field.Index.TOKENIZED));

            iwriter.AddDocument(doc);

            iwriter.Close();



            // Now search the index:

            IndexSearcher isearcher = new IndexSearcher(directory);

            // Parse a simple query that searches for "text":

            QueryParser parser = new QueryParser("fieldname", analyzer);

            Query query = parser.Parse("text");

            Hits hits = isearcher.Search(query);

            //assertEquals(1, hits.Length());

            // Iterate through the results:

            for (int i = 0; i < hits.Length(); i++)

            {

                Document hitDoc = hits.Doc(i);

                //AssertEquals("This is the text to be indexed.", hitDoc.Get("fieldname"));

                MessageBox.Show(hitDoc.Get("fieldname"));

            }

            isearcher.Close();

            directory.Close(); 

        }

    }

}