Lucene 学习第一天

Lucene提供的服务实际包含两部分:
     1) 写入:将你提供的源写入索引或者将其从索引中删除
          写入流程:
          (1)源字符串首先经过analyzer处理,分成一个个单词,去除可选(stopword)
          (2)将源中需要的信息加入Document的各个field中,并把需要索引的field索引起来,把需要存储的
               field存储起来
          (3)将索引写入存储器,存储器可以是内存或者磁盘
     2) 读出:向用户提供全文搜索服务,让用户通过关键字定位源
          读出流程:
          (1)用户提供搜索关键词,经过analyzer处理
          (2)对处理后的关键字搜索索引找出对应的Document
          (3)用户根据需要从找到的Docement中提取需要的Field
概念:
         Analyzer   :分析器:把一个字符串按照某种规则划分成一个个的词语,并去除其中的无效词语.
         Document :用户提供的源是一条条记录,它们可以是文本文件、字符串或者数据库表的一条记录等等。
                            一条记录经过索引后,就是以 一个Document的形式存储在索引文件中。用户进行搜索也
                            是以Document列表的形式返回。
          field         :  一个Docuement可以包含多个信息域,这些信息域就是通过Field在Document中存储的。它
                            有两个属性可以选择:存储和索引。
          term        :  搜索的最小单位,表示文档的一个词语,由两部分组成:它表示的词语和这个词语出现的
                             field
          tocken      :  是term的第一次出现,它包含term文本和相应的起止偏移以及一个类型的字符串
          segment   : (小文件)添加索引时,document首先写入不同的小文件然后再合并成一个大索引文件

如何建立索引:

      
IndexWriter writer = new IndexWriter(“/data/index/”, new StandardAnalyzer(), true); 
Document doc = new Document();
doc.add(new Field("title", "lucene introduction", Field.Store.YES, Field.Index.TOKENIZED));
doc.add(new Field("content", "lucene works well", Field.Store.YES, Field.Index.TOKENIZED));
writer.addDocument(doc);
writer.optimize();
writer.close();
     下面我们分析一下这段代码。
            首先我们创建了一个writer,并指定存放索引的目录为“/data/index”,使用的分析器为StandardAnalyzer,第三个
      参数说明如果已经有索引文件在索引目录下,我们将覆盖它们。然后我们新建一个document。
          我们向document添加一个field,名字是“title”,内容是“lucene introduction”,对它进行存储并索引。再添加一个名
      字是“content”的field,内容是“lucene works well”,也是存储并索引。然后我们将这个文档添加到索引中,如果有多个文
      档,可以重复上面的操作,创建document并添加。
            添加完所有document,我们对索引进行优化,优化主要是将多个segment合并到一个,有利于提高索引速度。随后将
      writer关闭,这点很重要。
            如果你想把纯文本文件索引起来,而不想自己将它们读入字符串创建field,你可以用下面的代码创建
      field: Field field = new Field("content", new FileReader(file));
      这里的file就是该文本文件。该构造函数实际上是读去文件内容,并对其进行索引,但不存储。





posted on 2012-09-19 17:22 Nirvana reborn 阅读(384) 评论(0)  编辑  收藏 所属分类: ★搜索引擎


只有注册用户登录后才能发表评论。


网站导航:
 
<2012年9月>
2627282930311
2345678
9101112131415
16171819202122
23242526272829
30123456

导航

统计

公告

我好喜欢它,
我的 QQ 66013804
我想做技术流,可是我很懒,
博客新地址:<a href="http://cobaya.cn/" >

随笔分类(19)

文章档案(1)

博主链接

最新评论

阅读排行榜