Lucence(垂直化搜索引擎框架)

Lucence是apache旗下的一款高性能、可伸缩的开源的信息检索库,最初始Doug Cutting开发,并在SourceForge的网站下提供下载,它支持的预研C++,C#,perl、Python。

倒排索引也称为反向索引,是搜索引擎中最常见的数据结构,几乎所有的搜索引擎都会用到倒排索引。它将文档中的词作为关键字,建立词与文档的映射关系,通过对倒排索引的检索,可以根据词快速获取包含这个词的文档列表,这对于搜索引擎来说至关重要。

分词又成为切词,就是讲句子或者段落进行切割,从中提取出包含固定予以的词。

停止词,在英语中包含了 a、the、and这样频率很高的词,如果这些词都被建到索引中进行索引的话,搜索引擎就没有任何意义了,因为几乎所有的文档都包含这些词。

排序,当输入一个关键字进行搜索时,可能会命中许多文档,搜索引擎给用户的价值就是快速找到需要的文档,因此需要将相关度更大的内容排到前面,以便使用户能够更快的筛选有价值的内容弄。

文档:在lucence的定义中,文档是一些列(field)的组合,而文档的域则代表一系列与文档有关的内容,与数据库的记录的概念有点相似,一行记录所包含的字段对应的就是文档的域。比如,一个老师的个人信息包括,年龄、身高、性别、个人简介等。

域:field,索引的每个文档中都包含一个或多个不同的域,每个域都包含了域的名称和域对应的值,并且与还可以是不同的类型,如字符串、整型、浮点型等。


词(Term),Term是搜索的基本单元,与Field对应的名字以及搜索的关键词,可以永泰来查询制定域中包含特定内容的文档。

查询(Query),最基本的查询可能是一些列Term的条件组合,成为TermQuery,但也有可能是短语查询、前缀查询、范围查询

分词器,文档在被索引之前,需要经过分词器处理,以提取关键的语义单元,建立索引,并提出无用的信心,如停止词,提高查询的准确性。


Lucence 索引的构建分这样几步,通过制定的数据格式,检Lucence的Document 传递给分词器Analyzer进行分词,经过分词器之后,通用索引吸入工具IndexWriter将索引写入到制定的目录。

对于索引的查询,首先构建查询的Query,通过IndexSearcher进行查询,得到命中的TopDocs。然后通过TopDocs的scoreDocs()方法,拿到ScoreDoc,通过ScoreDoc,得到对应的文档编号,IndexSearcher通过文档编号,使用IndexReader对制定目录下的索引内容进行读取,得到命中的文档后返回。

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值