中文分析器

中文分析器

1 中文分析器介绍
1.IKAnalyzer的使用方法
a.把IKAnalyzer的jar添加到工程中。如图所示:在这里插入图片描述
b.把配置文件和扩展词典添加到工程的Classpath目录下。如图所示:在这里插入图片描述
添加到src目录下,如图所示:在这里插入图片描述
注意事项:扩展词典严禁Windows记事本编辑的,保证扩展词典的编码格式是UTF-8的。
因为Window记事本UTF+BOM的编码格式,不会生效。
扩展词典:添加一些新词。
停用词词典:敏感词汇或者是无意义的词。
2 中文分析器测试
测试代码如下:

package com.txw.lucene;

import org.apache.commons.io.FileUtils;
import org.apache.lucene.analysis.Analyzer;
import org.apache.lucene.analysis.TokenStream;
import org.apache.lucene.analysis.tokenattributes.CharTermAttribute;
import org.apache.lucene.document.*;
import org.apache.lucene.index.*;
import org.apache.lucene.search.*;
import org.apache.lucene.store.Directory;
import org.apache.lucene.store.FSDirectory;
import org.junit.Test;
import org.wltea.analyzer.lucene.IKAnalyzer;
import java.io.File;
/**
 * 测试类
 * @author:Adair
 * @QQ:1578533828
 * @date 2020-07-10 23:30
 */
@SuppressWarnings("all")    // 注解警告信息
public class LuceneFirst {
      /**
     * 中文分析器
     * @throws Exception
     */
    @Test
    public void testTokenStream() throws Exception {
        //1)创建一个Analyzer对象,StandardAnalyzer对象
//        Analyzer analyzer = new StandardAnalyzer();
        Analyzer analyzer = new IKAnalyzer();
        //2)使用分析器对象的tokenStream方法获得一个TokenStream对象
               TokenStream tokenStream = analyzer.tokenStream("", "https://baike.baidu.com/Lucene - Java 公安局全文搜索框架Lucene 是apache软件基金会一个开放源代码的全文检索引擎工具包,是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎,部分文本分析引擎。");
        //3)向TokenStream对象中设置一个引用,相当于数一个指针
        CharTermAttribute charTermAttribute = tokenStream.addAttribute(CharTermAttribute.class);
        //4)调用TokenStream对象的rest方法。如果不调用抛异常
        tokenStream.reset();
        //5)使用while循环遍历TokenStream对象
        while(tokenStream.incrementToken()) {
            System.out.println(charTermAttribute.toString());
        }
        //6)关闭TokenStream对象
        tokenStream.close();
    }
}  

运行如图所示:在这里插入图片描述
在停用词典加入如图所示的词: 声明添加停用词典和扩展词典的文件,需要重新打开IEDA才能生效!在这里插入图片描述
运行如图所示:在这里插入图片描述
3 在代码中使用中文分析器
源代码如下:

  IndexWriter indexWriter = new IndexWriter(directory, new  IndexWriterConfig();

修改之后的代码如下:

IndexWriterConfig config = new IndexWriterConfig(new IKAnalyzer());
IndexWriter indexWriter = new IndexWriter(directory, config);

如图所示:在这里插入图片描述
运行之前把如图所示的文件删除。在这里插入图片描述
运行结果如图所示:在这里插入图片描述
使用Luke工具查看如图所示:在这里插入图片描述
4 常用的field使用
是否分析:是否对域的内容进行分词处理。前提是我们要对域的内容进行查询。
是否索引:将Field分析后的词或整个Field值进行索引,只有索引方可搜索到。比如:商品名称、商品简介分析后进行索引,订单号、身份证号不用分析但也要索引,这些将来都要作为查询条件。
是否存储:将Field值存储在文档中,存储在文档中的Field才可以从Document中获取。比如:商品名称、订单号,凡是将来要从Document中获取的Field都要存储。
是否存储的标准:是否要将内容展示给用户。
4.1 添加文档代码实现
修改的代码如下:
在这里插入图片描述
在这里插入图片描述
运行结果如图所示:在这里插入图片描述
打开Luke如图所示的界面:选择文件路径并点击ok.在这里插入图片描述
点击Documents选择序列号可以size的大小。在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

学无止路

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值