IKAnalyzer分词插件使用方法

发布时间:2022-01-16 02:27:10 作者:路人甲 阅读(619)

前言

随着越来越多的大数据网站崛起,特别是一些私人网站都提供了站内搜索,有些人会用elastsearch来实现站内搜索的目的,但是一些小站并没有那么大的数据提供搜索,在安装一个 elastsearch 服务未免有点浪费?

因此,为了解决以上问题,本文章特意将 elastsearch 中的 IKAnalyzer分词插件 提取出来单独使用,不需要依赖 elastsearch 就可以使用,

使用方法也很简单,下面附上代码:

先引入pom依赖

  1. <!--分词插件-->
  2. <dependency>
  3. <groupId>com.janeluo</groupId>
  4. <artifactId>ikanalyzer</artifactId>
  5. <version>2012_u6</version>
  6. </dependency>

java代码:

  1. package com.xd.core.common.utils;
  2. import com.google.common.collect.Lists;
  3. import org.wltea.analyzer.core.IKSegmenter;
  4. import org.wltea.analyzer.core.Lexeme;
  5. import java.io.IOException;
  6. import java.io.StringReader;
  7. import java.util.ArrayList;
  8. import java.util.List;
  9. /**
  10. * <分词工具>
  11. *
  12. * @className AnalyzerUtils
  13. * @Date 2019/1/19 17:17
  14. **/
  15. public class AnalyzerUtils {
  16. /**
  17. *
  18. * <分词>
  19. *
  20. * @param content 需要分词的文章
  21. * @return java.lang.String[]
  22. */
  23. public static List<String> participle(String content) throws IOException {
  24. //独立Lucene实现
  25. StringReader re = new StringReader(content);
  26. IKSegmenter ik = new IKSegmenter(re,true);
  27. Lexeme lex = null;
  28. List<String> words = new ArrayList<>();
  29. try {
  30. while((lex=ik.next())!=null){
  31. words.add(lex.getLexemeText());
  32. }
  33. }catch (Exception e) {
  34. e.printStackTrace();
  35. throw e;
  36. }
  37. return words;
  38. }
  39. public static void main(String[] args) throws IOException {
  40. List<String> participle = participle("如何成为一个高情商的人,心理学家玛莎.莱恩博士曾经创建了高情商训练课,从这四个方面帮助了无数人提升情商");
  41. System.out.println(participle);
  42. }
  43. }

运行结果:
[如何, 成为, 一个, 高, 情商, 的人, 心理学家, 玛莎, 莱, 恩, 博士, 曾经, 创, 建了, 高, 情商, 训练课, 从这, 四个, 方面, 帮助, 了无, 数人, 提升, 情商]

另外,如果有条件的话还是使用elastsearch 用作搜索引擎较好

关键字Java