前言
随着越来越多的大数据网站崛起,特别是一些私人网站都提供了站内搜索,有些人会用elastsearch来实现站内搜索的目的,但是一些小站并没有那么大的数据提供搜索,在安装一个 elastsearch 服务未免有点浪费?
因此,为了解决以上问题,本文章特意将 elastsearch 中的 IKAnalyzer分词插件 提取出来单独使用,不需要依赖 elastsearch 就可以使用,
使用方法也很简单,下面附上代码:
先引入pom依赖
<!--分词插件-->
<dependency>
<groupId>com.janeluo</groupId>
<artifactId>ikanalyzer</artifactId>
<version>2012_u6</version>
</dependency>
java代码:
package com.xd.core.common.utils;
import com.google.common.collect.Lists;
import org.wltea.analyzer.core.IKSegmenter;
import org.wltea.analyzer.core.Lexeme;
import java.io.IOException;
import java.io.StringReader;
import java.util.ArrayList;
import java.util.List;
/**
* <分词工具>
*
* @className AnalyzerUtils
* @Date 2019/1/19 17:17
**/
public class AnalyzerUtils {
/**
*
* <分词>
*
* @param content 需要分词的文章
* @return java.lang.String[]
*/
public static List<String> participle(String content) throws IOException {
//独立Lucene实现
StringReader re = new StringReader(content);
IKSegmenter ik = new IKSegmenter(re,true);
Lexeme lex = null;
List<String> words = new ArrayList<>();
try {
while((lex=ik.next())!=null){
words.add(lex.getLexemeText());
}
}catch (Exception e) {
e.printStackTrace();
throw e;
}
return words;
}
public static void main(String[] args) throws IOException {
List<String> participle = participle("如何成为一个高情商的人,心理学家玛莎.莱恩博士曾经创建了高情商训练课,从这四个方面帮助了无数人提升情商");
System.out.println(participle);
}
}
运行结果:[如何, 成为, 一个, 高, 情商, 的人, 心理学家, 玛莎, 莱, 恩, 博士, 曾经, 创, 建了, 高, 情商, 训练课, 从这, 四个, 方面, 帮助, 了无, 数人, 提升, 情商]
另外,如果有条件的话还是使用elastsearch 用作搜索引擎较好