博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Lucene 自定义分词器
阅读量:4031 次
发布时间:2019-05-24

本文共 1233 字,大约阅读时间需要 4 分钟。

package com.lucene.util;
 
 import java.io.Reader;
 import java.util.Set;
 
 import org.apache.lucene.analysis.Analyzer;
 import org.apache.lucene.analysis.LetterTokenizer;
 import org.apache.lucene.analysis.LowerCaseFilter;
 import org.apache.lucene.analysis.StopAnalyzer;
 import org.apache.lucene.analysis.StopFilter;
 import org.apache.lucene.analysis.TokenStream;
 import org.apache.lucene.util.Version;
 
 //定义禁用词分词器
 public class UserDefinedAnalyzer extends Analyzer {
 
     //定义禁用词集合
     private Set stops;
     
     //无参构造器使用默认的禁用词分词器
     public UserDefinedAnalyzer(){
         stops=StopAnalyzer.ENGLISH_STOP_WORDS_SET;
     }
     
     /**
      * 传一个禁用词数组
      * @param sws
      */
     public UserDefinedAnalyzer(String[] sws){
         //使用stopFilter创建禁用词集合
         stops=StopFilter.makeStopSet(Version.LUCENE_35,sws,true);
         //将默认的禁用词添加进集合
         stops.addAll(StopAnalyzer.ENGLISH_STOP_WORDS_SET);
     }
     
     /**
      * 自定义分词器
      */
     @Override
     public TokenStream tokenStream(String str, Reader reader) {
         
         return new StopFilter    
                 (Version.LUCENE_35,
                         new LowerCaseFilter    
                 (Version.LUCENE_35,
                         new LetterTokenizer(
                 Version.LUCENE_35, reader)), stops);
     }
 

 }

@Test

    public void test04(){
        Analyzer a1=new UserDefinedAnalyzer(new String[]{"my","name"});
        //Analyzer a1=new UserDefinedAnalyzer();
        String str="my name is paul";
        AnalyzerUtil.displayToken(str, a1);
    }

转载地址:http://gnebi.baihongyu.com/

你可能感兴趣的文章
iOS __block和__weak的区别
查看>>
Android(三)数据存储之XML解析技术
查看>>
Spring JTA应用之JOTM配置
查看>>
spring JdbcTemplate 的若干问题
查看>>
Servlet和JSP的线程安全问题
查看>>
GBK编码下jQuery Ajax中文乱码终极暴力解决方案
查看>>
jQuery性能优化指南
查看>>
Oracle 物化视图
查看>>
PHP那点小事--三元运算符
查看>>
解决国内NPM安装依赖速度慢问题
查看>>
Brackets安装及常用插件安装
查看>>
在CentOS 7系统上搭建LNMP 环境
查看>>
Centos 7(Linux)环境下安装PHP(编译添加)相应动态扩展模块so(以openssl.so为例)
查看>>
fastcgi_param 详解
查看>>
Nginx配置文件(nginx.conf)配置详解
查看>>
标记一下
查看>>
一个ahk小函数, 实现版本号的比较
查看>>
IP报文格式学习笔记
查看>>
autohotkey快捷键显示隐藏文件和文件扩展名
查看>>
Linux中的进程
查看>>