lucene如何对搜索内容进行建模

作者: lizhongyi188
发布时间:2015-07-08 16:57:27

1.文档和域

      文档是lucene索引和搜索的原子单位。文档为包含一个或多个域的容器。域值可以被索引或者不被索引,如果需要搜索一个域则必须对它进行索引。二进制格式的域值只能被存储而不能为索引,在索引一个域的时候需要使用分析器将域值转换为词汇单元。


2.索引过程

 

从上图中可以看出:lucene索引过程分为三个主要步骤,将原始文档转换为文本,分析文本,将分析的文本保存至索引中。在索引操作期间,文本首先从原始数据中提取出来,并用于创建对应的document的对象。该对象包含多个Field实例。他们都用来保存原始数据信息,随后的分析过程将文本处理成大量的语汇单元,最后将语汇单元加入到段结构中。

提取文本和创建文档:

       lucene对于纯文本信息可以轻而易举的从中提取文本,如txt文件,但是如果需要对PDF格式的手册进行索引,你首先也必须从该文档中提取出文本,并用这些信息创建Lucened的文档和域。而java中没有对应的方法来处理PDF格式文件,对应的Microsoft Word 文件活其他非纯文本的格式文件一样。lucene可以结合Tika框架,从而也可以很容易的从中提取到相关的文本信息.

分析文档:

      在索引操作期间,Lucene首先分析文本。将文本数据分隔为语汇单元。然后对他们进行一些可选的操作。例如,语汇单元在索引前需要统一转换为小写字母。以使搜索对大小写不敏感或者去掉相关频繁却没有实际意义的词(如:啊  呵呵。。。)。有关文档的分析,内容相当的多,在这里不在详细说明。后期有时间会详细讲解这方面的东西。

  

版权声明:本文为博主原创文章,未经博主允许不得转载。

标签: Lucene
来源:http://blog.csdn.net/lizhongyi188/article/details/6685332

推荐: