• Lucene.Net 2.3.1开发介绍 —— 一、接触Lucene.Net


    1、引用Lucene.Net类库

    找到Lucene.Net的源代码,在“C#\src\Lucene.Net”目录。打开Visual Studio,我的版本是2008,而Lucene.Net默认的是2005。先创建一个项目,简单起见,创建一个C#控制台程序。

    1_vs_create.jpg
    图 1.1

    然后添加Lucene.Net进项目,如图 1.2 - 1.3。

    1_vs_2.jpg
    图 1.2

    1_vs_3.jpg
    图 1.3

    这个过程要进行一个VS2005到2008的转换。添加后,解决方案就有Lucene.Net项目了,如图1.4。

    1_vs_4.jpg
    图 1.4

    然后把Lucene.Net引入TestLucene项目。如图1.5 -1.6:

    1_vs_5.jpg
    图1.5

    1_vs_6.jpg
    图1.6

    点确定后就可以了。这时候,就可以在TestLucene项目中使用Lucene.Net的API了。

    2、简单示例
    对Lucene.Net的操作分为建立索引,和搜索两部分。

    2.1 建立索引

    通过代码 2.1.1,就可以简单地建立一个索引了。代码 2.1.1将在应用程序目录下建立一个IndexDirectory目录,并在目录下创建索引文件。

    代码 2.1.1

    Code

    2.2 搜索索引

    代码2.2.1就可以搜索刚才建立的索引。

    代码 2.2.1

    Code

    运行后输出:

    title:SQL Server 2008 的发布 content:SQL Server 2008 的新特性

    2.3 疑问

    2.1,2.2小节介绍了最简单的建立和搜索索引的方式。虽然代码很短,使用也很简单,但是理解起来却不是太容易。

    代码 2.1.1中,先是建立了一个分词器。什么是分词器?为什么要有分词器?分词器是怎么工作的?这些问题真让人头疼。接着建立一个IndexWriter的实例,这个类是负责创建索引的,有很多构造函数,这里使用的是其中的一个。三个参数分别是:索引建立到哪个目录,用什么分词器,还有就是是否创建。如果是否创建为false,那么就是以增量的方式来创建。再下来调用了AddDocument方法,在AddDocument方法中,先组织一个Docuement对象,然后把这个对象交给IndexWriter。然后再调用Optimize优化索引,最后关闭创建过程。这里面又有什么是Document,Document是怎么往存储器里写入的?Optimize方法能干什么?问题真多。

    代码2.2.1则相对简单,先是创建IndexSearcher对象实例,并指定其搜索的目录,然后构造了一个查询Query,然后查出Hits,这样就得到想要的结果了。但是这个查询的过程是什么样的呢?这个Query代表什么?Hits是怎么得出来的?结果的顺序是怎么决定的?这些又是留下来的问题。

    这么多问题,不能一次说完,欲知后事如何,下面一一道来。

  • 相关阅读:
    css3-8 内外边距中的注意要点有哪些
    php实现 统计输入中各种字符的个数
    Java设计模式偷跑系列(十八)建模和责任链模式的实现
    Delphi 3D Glscene安装
    五通信算法:五种编码增益比较matlab模拟
    OpenGL于MFC使用汇总(三)——离屏渲染
    设计模式--模板方法 And State模式
    EXCEL 两人的建立Y轴
    LeetCode Median of Two Sorted Arrays
    wordpress常见的问题
  • 原文地址:https://www.cnblogs.com/birdshover/p/1277081.html
Copyright © 2020-2023  润新知