lucene的分词器

一.默认分词器

默认使用的标准分析器StandardAnalyzer

二.查看分词器的分词效果

使用Analyzer对象的tokenStream方法返回一个tokenStream对象。该对象包含最终分词结果。

1.实现步骤

(1)创建一个Analyzer对象,StandardAnalyzer对象。

(2)使用分析器的tokenStream方法返回一个tokenStream对象。

(3)向tokenStream对象中设置一个引用,相当于一个指针。

(4)调用tokenStream对象中的rest方法,如果不调用抛出异常。

(5)使用while循环遍历tokenStream对象。

(6)关闭tokenStream对象。

2.范例

图片

三.IKAnalyzer【中文解析器】

1.使用方法

  1. 把IKAnalyzer的jar包放入工程中。
  2. 把配置文件和扩展词典添加到工程的classpath下。

注意事项:扩展词典严禁使用windows的记事本进行编辑。需要保证扩展词典的编码格式为utf-8。

扩展词典的作用:可以添加新的词。

停用词典的作用:无意义的词或者敏感词典。

2.停用词典和扩展词典的图解

图片

3.范例

(1)代码块

图片

(2)扩展词典

图片

(3)停用词典

图片

(4)停用词典和扩展词典的优先级

停用词典比扩展词典的优先级要高。所以,如果俩者同时存在,则优先选择停用词典。

四.中文解析器的实际应用

1.实现步骤

(1)创建索引

1.创建一个Director对象,指定索引库的位置

2.基于Director对象创建一个IndexWriter对象。

2.1设置自定义的解析器【设置中文解析器】

2.2创建一个IndexWriter对象

3.读取磁盘上的原始文件,对应每个文件创建一个文档对象。

4.向文档对象添加域。

5.把文档对象写到索引库。

6.关闭indexwriter对象

(2)查询索引

1.创建一个Director对象,指定索引库的位置。

2.创建一个IndexReader对象。

3.创建一个IndexSearcher对象,构造方法参数中的参数IndexReader对象。

4.创建一个Query对象。TeamQuery。

5.执行查询,得到一个TopDocs对象。

6.取出查询结果的总记录数。

7.取文档列表。

8.打印文档中的内容。

9.关闭IndexReader对象。

2.范例

(1)创建索引

图片

图片

(2)查询索引

图片

五.源码

lucene.rar

### 回答1: Lucene 5.5是一个开源的Java搜索引擎库,用于文本分析、索引和搜索。在Lucene中,分词器(Tokenizer)是用于将输入文本按照特定规则切分成单词(token)的工具。 Lucene 5.5提供了多种分词器,常用的有标准分词器(StandardTokenizer)、简单分词器(SimpleAnalyzer)、关键字分词器(KeywordAnalyzer)等。这些分词器在应用场景和切分规则上有所不同,用户可以根据需求选择合适的分词器。 标准分词器Lucene中最常用的分词器之一,它通过去除空格、标点符号等特殊字符,将输入文本切分成一系列单词。这个过程叫做词法分析(tokenizing)。标准分词器还提供了一些附加的文本处理功能,例如将单词转换为小写(lowercasing)、去除停用词(stopwords)等。 简单分词器是一个基本的分词器,它将输入文本用空格切分成单词,并将单词转换为小写。这个分词器在某些简单的搜索场景中会有一定的使用价值。 关键字分词器则是将整个输入文本当作一个单词进行处理,适用于某些特殊的搜索需求。例如,当用户输入一个关键字作为搜索条件时,关键字分词器可以直接将整个关键字当作一个单词进行匹配。 除了以上提到的分词器Lucene还提供了其他各种特定场景下的分词器,例如CJK分词器适用于中日韩文本的分词,Whitespace分词器将输入文本按照空格进行切分等等。 总结来说,Lucene 5.5提供了多种分词器供用户选择,根据不同的文本分析需求和搜索场景,选择合适的分词器可以提高搜索的效果和准确性。 ### 回答2: Lucene 5.5 是一款开源的全文搜索引擎库,其中的分词器是其核心组件之一。分词器用于将输入的文本进行切分,生成词条列表,以便进行索引和搜索。 Lucene 5.5 提供了多种分词器,常用的有标准分词器(StandardAnalyzer)和中文智能分词器(SmartChineseAnalyzer)。 标准分词器是最常用的分词器之一,它基于语法规则对文本进行切分,以空格、标点符号等作为分隔符。它能够处理英文等非中文文本,但对于中文文本效果不佳,因为中文没有明确的分隔符。 中文智能分词器是专门针对中文文本设计的分词器,它不仅考虑了语法规则,还结合了汉字之间的概率关联关系对文本进行切分。通过对大量的中文语料进行训练,智能分词器可以较好地解决中文分词中的歧义性问题,提升分词的准确性和效果。 除了以上两种分词器Lucene 5.5 还提供了其他一些适用于特定场景的分词器,如关键字分词器(KeywordAnalyzer)和简单分词器(SimpleAnalyzer)。用户也可以根据自己的需求自定义分词器,通过实现接口来自定义词汇的切分规则。 总之,Lucene 5.5 分词器是一系列能够对文本进行切分的工具,包括了多种分词算法和规则,以满足不同场景下的需求。通过合理选择和应用分词器,可以提高全文搜索引擎的准确性和效率,为用户提供更好的搜索体验。 ### 回答3: Lucene 5.5 是一个开源的全文搜索引擎库,其中包含了许多功能强大的分词器。 在Lucene 5.5中,分词器是用于将文本分成单个的词语或词元的组件。这对于搜索引擎的索引构建和查询处理非常重要。在Lucene中,我们可以使用不同类型的分词器来满足不同的需求。 Lucene 5.5提供了许多内置的分词器。其中最常用的是StandardAnalyzer,它是基于标准英语规则的分词器,它可以将文本分成单词,并过滤掉一些常见的停用词。此外,还有KeywordAnalyzer,它将文本视为一个整体,不对其进行分词。另外还有SimpleAnalyzer,它将文本按照非字母字符进行分割,并将其小写化。还有WhitespaceAnalyzer,它将文本按照空格进行分割。 除了这些内置的分词器Lucene 5.5还支持自定义的分词器。开发人员可以根据自己的需求实现自己的分词器。自定义分词器需要实现TokenStream接口,该接口定义了文本分词后的词元流。 通过使用Lucene 5.5的分词器,我们可以将待搜索的文本分成单个的词语或词元,从而提高搜索的准确性和效率。分词器是搜索引擎中一个非常关键的组件,它的质量和性能直接影响着整个搜索过程的效果。因此,了解和选择适合的分词器是非常重要的。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值