`
GhostWolf
  • 浏览: 312764 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

solr anjl整合

阅读更多

mlcsseg下载:

https://github.com/mlcsdev/mlcsseg/tree/4.7

 

mlcsseg使用说明:

http://mlcsdev.iteye.com/blog/2037109

 

ansj中文分词下载:

https://github.com/ansjsun/ansj_seg

 

参考文章:

http://www.abyssss.com/?p=62

 

      由于ansj不支持solr,所以选择了使用mlcsseg封装包,目前mlcsseg版本是4.7,支持ansj版本是1.4,所以如果你需要使用ansj的最新版本2.0,需要自己修改一下.

      mlcsseg项目总共包含4个子项目,由于ik我没用到,所以pom里面可以考虑去除,最后就剩下3个项目

 

<module>mlcsseg-common</module>
<module>mlcsseg-filter</module>
<module>mlcsseg-ansj</module>

 

      在这三个项目里面,需要这样调整一下(调整只是稍微测试了一下,还不知道改得有没有问题)

       1.mlcsseg-ansj的pom修改

 

<version>1.4</version>
<scope>system</scope>
<systemPath>${project.basedir}/lib/ansj_seg-1.4-min.jar</systemPath>

修改为

<version>2.0.6</version>

<!------------------------------------------------------------------------->
<version>1.3</version>
<scope>system</scope>
<systemPath>${project.basedir}/lib/tree_split-1.3.jar</systemPath>

修改为

<version>1.4</version>

 

       2.mlcsseg-ansj项目中AnsjTokenizerFactory.update方法修改如下:

 

UserDefineLibrary.loadLibrary(inputStreams);
修改为
UserDefineLibrary.loadLibrary(UserDefineLibrary.FOREST, path);

 

 

        3.mlcsseg-common项目中ReloaderRegister.loadAndUpdate方法修改如下:

       

if (!dicts.isEmpty()){
	List<InputStream> insFromLoader = new ArrayList<InputStream>(dicts.size());
	for(String dictName : dicts){
		try{
			insFromLoader.add(loader.openResource(dictName));
		}catch(IOException e){
			System.out.println("missing dict source : " + dictName);
		}
	}
	reloadFactory.update(insFromLoader);
	System.out.println("reload finish! " + dicts);
}

//---------------------------------------------------------------------------
//以上代码修改为下面的代码

if (!dicts.isEmpty()){
	for(String dictPath : dicts){
		reloadFactory.update(dictPath);
		System.out.println("reload finish! " + dictPath);
	}
}

 

 

        代码修改完成后,maven install一下,把jar包:tree_split-1.4.jar,nlp-lang-0.2.jar,ansj_seg-2.0.6.jar,mlcsseg-common-4.6.0-SNAPSHOT.jar,mlcsseg-filter-4.6.0-SNAPSHOT.jar,mlcsseg-ansj-4.6.0-SNAPSHOT.jar放入你的solr web项目WEB-INF/lib文件夹中

        4.在mlcsseg项目中有test1和test2文件夹,test1为ik的配置,可以不用,我们选用test2文件夹,找到ansj.conf文件files的值修改为词库的路径(原先是词库的具体文件名,现在修改为路径),可以扩展自己的词库

 

        5.把test2文件夹中的conf文件夹,copy到上篇文章中提到的new_core中(直接覆盖)

 

        6.ansj_seg-master项目中(即ansj项目),把library文件夹copy到上篇文章中提到的new_core中

        7.ansj_seg-master项目中,把library.properties文件复制到你的solr web项目WEB-INF/classes中,同时修改ambiguityLibrary和userLibrary的词库路径(指上一点中提到的library路径

 

        至此,配置算是完成了,重启一下resin(希望没有遗漏什么要点,因为都是跑通后,重新回忆补上文档的)

 

ansj分词效果

    

不是ansj的分词效果

     
 

特别注意:以上所有的操作都是初试而已

 

测试代码:

//增加新词

/*
String nature = "aaaaa";
String str = "上海电力2012年财务报表如下怎爸爸去哪儿么办";
UserDefineLibrary.insertWord("怎爸爸去哪儿", nature, 2000);
UserDefineLibrary.insertWord("爸爸去哪", nature, 2000);

String[] paramers = new String[2];
paramers[0] = nature;
paramers[1] = String.valueOf(2000);

Value value = new Value(newWord, paramers);
Library.insertWord(UserDefineLibrary.FOREST, value);

*/
String str = "北京好药师大药房连锁有限公司";
//String newWord =  "北京好药师";
//String nature = "111";
/*
String[] paramers = new String[2];
paramers[0] = nature;
paramers[1] = String.valueOf(2000);
Value value = new Value(newWord, paramers);
Library.insertWord(UserDefineLibrary.FOREST,value);
*/
String path = "/home/resin/data/jsp/solr.ehaoyao.com/WebRoot/cores/multicore/new_core/conf/extDic.txt";
UserDefineLibrary.loadLibrary(UserDefineLibrary.FOREST, path);
//Value value2 = new Value("好药师", "222", "1000");
//Library.insertWord(UserDefineLibrary.FOREST, value2);
//Value value = new Value("北京好药师", "111", "1000");
//Library.insertWord(UserDefineLibrary.FOREST, value);

out.println(ToAnalysis.parse(str));
//out.println("<br/>");
//out.println(UserDefineAnalysis.parse(str));

 或者 直接看ansj项目中的测试类

/ansj_seg-master/src/test/java/org/ansj/test/UserDefinedAnalysisTest.java

 

不过这里还有个疑问 为什么我在词库中添加 “北京好药师” “好药师” 这两个词 按理分词后应该会出现这两个,但是实际上不会,只会出现“北京好药师”这个词,不明白为什么

  • 大小: 38.2 KB
  • 大小: 38.3 KB
分享到:
评论

相关推荐

    Solr3.5整合Tomcat

    下面我们将详细讨论如何将 Solr 3.5 版本整合到 Tomcat 中。 首先,我们需要了解 Solr 3.5 的主要特性。这个版本包含了对搜索性能的优化,改进了处理大量数据的能力,并且引入了一些新的查询过滤器和排序选项。同时...

    solr4.10.2与tomcat6的整合

    ### Solr 4.10.2 与 Tomcat 6 的整合详解 #### 一、Solr 与 Tomcat 整合概述 Solr 是一个高性能、采用 Java 开发的全文搜索引擎,常用于网站搜索功能的搭建。而 Apache Tomcat 是一个免费开源的 Servlet 容器,...

    Tomcat8.0与Solr8.0的整合

    本教程将详细介绍如何在Tomcat 8.0中整合Solr 8.0,并配置IK分词器,以实现更精准的中文分词搜索。 首先,我们需要了解Tomcat和Solr的基本概念。Tomcat是Apache软件基金会的Jakarta项目中的一个核心项目,它遵循...

    solr与tomcat整合

    标题“solr与tomcat整合”涉及的是将Apache Solr搜索引擎集成到Apache Tomcat应用服务器的过程。Solr是一款基于Lucene的开源搜索平台,而Tomcat是Java Servlet和JavaServer Pages的容器。整合这两者可以方便地在Web...

    window下tomcat+solr整合

    标题中的“window下tomcat+solr整合”指的是在Windows操作系统环境下,将Apache Tomcat(一个流行的Java Servlet容器)与Apache Solr(一个基于Lucene的全文搜索服务器)进行集成,以便实现高效的全文检索功能。...

    solr ssm java

    标题中的"solr ssm java"表明这是一个使用Java语言,结合Spring、SpringMVC和MyBatis(SSM)框架的项目,其中整合了Apache Solr搜索引擎。让我们深入了解一下这些技术及其相互作用。 **Solr**: Apache Solr是基于...

    tomcat整合solr.rar

    标题中的"tomcat整合solr.rar"提示我们这是一个关于如何将Apache Tomcat与Apache Solr进行集成的资源包。Tomcat是广泛使用的Java Servlet容器,而Solr则是一个开源的全文搜索引擎,常用于构建高效的搜索功能。这个...

    solr 3.5 tomcat 整合可直接使用

    Solr 3.5与Tomcat的整合是一个关键的步骤,尤其对于那些希望在Java应用服务器上部署Solr搜索引擎的企业。Solr是一个基于Apache Lucene的开源搜索平台,提供了高效、可扩展的全文检索、命中高亮、拼写检查、分类、 ...

    solr4.7服务搭建

    ### Solr 4.7 服务搭建详细指南 #### 一、环境准备 为了搭建 Solr 4.7 服务,我们需要确保以下环境已经准备好: 1. **Java Development Kit (JDK) 1.7**:Solr 需要 Java 运行环境支持,这里我们选择 JDK 1.7 ...

    solr 3.5 msg整合可直接使用

    "solr 3.5 msg整合可直接使用"的标题意味着这个压缩包包含了一个已经配置好并且可以立即运行的Solr 3.5实例,特别地,它可能已经集成了某种消息处理或通信机制(可能指的是message5_1),以便于数据的导入和检索。...

    solr3.5与tomcat6集成,添加自己的分词器

    ### Solr 3.5 与 Tomcat 6 集成及自定义分词器配置详解 #### 一、Solr与Tomcat集成概述 Solr 是一个高性能、采用 Java 开发的企业级搜索服务器,它基于 Lucene 库提供了一个完整的全文检索框架。而 Tomcat 是一个...

    Solr高级搜索+tomcat整合服务器

    Solr如何进行索引和搜索 索引:客户端(可以是浏览器可以是java程序)发送post请求到solr服务器,发给solr服务器一个文档(xml、json),就可以进行一个添加索引删除索引、修改索引的操作。 搜索:客户端(可以是...

    ansj_solr_all

    《ANSJ与Solr的深度整合:构建高效全文搜索引擎》 在信息爆炸的时代,如何高效地从海量数据中检索出我们需要的信息,成为了企业和个人都亟待解决的问题。这就是全文搜索引擎的作用所在。ANSJ(Automatic NLP ...

    solr-7.7.3配置详解,跟springboot整合 (二)

    在本篇中,我们将深入探讨Solr 7.7.3的配置细节,并了解如何将其与Spring Boot 2.x进行整合,构建一个高效、可扩展的搜索引擎应用。 **一、Solr 7.7.3核心配置** 1. **安装与启动** - 首先,你需要下载Solr 7.7.3...

    solr4.9与tomcat8,tomcat7整合

    以上就是Solr 4.9与Jetty以及Tomcat 8.0整合的基本步骤,整合过程中需确保所有配置文件的正确性和路径的准确性,以确保服务能够正常启动和运行。对于日志管理和性能优化,还可以进一步配置Solr的相关参数,以满足...

    Solr安装与整合中文分词IKAnalyzer

    ### Solr安装与整合中文分词IKAnalyzer #### Solr简介 Apache Solr是一款开源的全文搜索引擎平台,基于Java开发,能够提供高效的数据检索服务。它支持多种索引方式,并且能够灵活地处理各种类型的数据,包括文本、...

    SSM+spring-data-solr+solr7.7 全文搜索代码

    综上所述,这个项目展示了如何在Java Web环境中利用SSM框架与Spring Data Solr进行数据库与Solr的整合,实现高效、便捷的全文搜索功能。对于希望在项目中加入高级搜索功能的开发者来说,这是一个非常有价值的参考...

    spring整合solr

    spring整合solr抽取数据,简单使用中 &lt;!--定义solr的server--&gt; &lt;bean id="httpSolrServer" class="org.apache.solr.client.solrj.impl.HttpSolrServer"&gt;

    ssm整合solr

    SSM整合Solr是将Spring、SpringMVC和MyBatis三个开源框架与Apache Solr搜索引擎集成的过程。在Java Web开发中,这种整合能够帮助企业构建高效、可扩展的搜索功能。下面将详细介绍SSM整合Solr的相关知识点。 一、...

Global site tag (gtag.js) - Google Analytics