Lucene分词原理与代码实例讲解
1.背景介绍
1.1 什么是Lucene
Lucene是Apache软件基金会的一个顶级开源项目,是一个高性能、全文检索的开源搜索引擎工具包。它提供了完整的查询引擎和索引引擎,部分文本分析引擎。Lucene的目的是为软件开发人员提供一个简单易用的工具包,以方便的在目标系统中实现全文检索的功能,或者是以此为基础建立起完整的全文检索引擎。
1.2 全文检索与分词的关系
全文检索是指计算机索引程序通过扫描文章中的每一个词,对每一个词建立一个索引,指明该词在文章中出现的次数和位置。当用户查询时,检索程序就根据事先建立的索引进行查找,并将查找的结果反馈给用户的检索方式。这个过程类似于通过字典中的检索字表查字的过程。
要实现全文检索,需要先对文本进行分词处理,将整本书或整篇文章分成一个个单独的词,这些词代表了文章的主题内容。分词是全文检索的基础,也是最关键的一步。
1.3 Lucene分词器简介
Lucene中负责将原始内容分割成一个个单独语汇单元(单词)的组件就叫做分词器(Tokenizer)。Lucene自带了多种分词器,可以对不同语言进行分词。标准分词器(StandardAnalyzer)可以对英文进行分词,中文分词需要使用第三方扩展,如IKAnalyzer、Ansj、Jcseg、mmseg4j等。