solr入门之solr5x源码在eclipse中运行及添加mmseg分词器

Posted 当以乐

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了solr入门之solr5x源码在eclipse中运行及添加mmseg分词器相关的知识,希望对你有一定的参考价值。

1.下载ant,解压后设置环境变量 链接: http://pan.baidu.com/s/1eRZJIuQ 密码:9452     Ant环境变量配置:
    ANT_HOME: E:\\Program Files\\apache-ant-1.9.0
    Path: %ANT_HOME%\\bin

设置完成后  打开命令行 输入   ant  -version  显示版本信息则配置成功
2.下载solr-5.1.0的jar和源码包 链接: http://pan.baidu.com/s/1qY69uEw 密码:hzff
进入到源码包根目录下,运行如下命令 ant  成功后运行如下命令将 源码包变为eclipse可运行项目 ant eclipse
3.将solr项目导入eclipse中

(1)将solr4.3 import到eclipse(java EE IDE)

General——existing progects into workplace——指向solr源代码编译完成目录

(2)Java Project 转换为Dynamic WebProject

修改solr4.3项目下的.project文件

<natures>
<nature>org.eclipse.jdt.core.javanature</nature>
<nature>org.eclipse.wst.common.project.facet.core.nature</nature>
<nature>org.eclipse.wst.common.modulecore.ModuleCoreNature</nature>
<nature>org.eclipse.jem.workbench.JavaEMFNature</nature>
<nature>org.eclipse.wst.jsdt.core.jsNature</nature>
</natures>

Eclipse中打开“project properties",会看到新增了很多选择项,点中"Project Facets",选择java 和 Dynamic Web module

 (3)在工程目录下的.settings文件夹,org.eclipse.wst.common.project.facet.core.xml里的3.0改成2.5

<?xmlversion="1.0"encoding="UTF-8"?><faceted-project><fixedfacet="wst.jsdt.web"/><installedfacet="java"version="1.6"/><installed facet="jst.web"version="2.5"/><installedfacet="wst.jsdt.web"version="1.0"/></faceted-project>

(5)在solr目录下(D:\\源码包\\solr)下,新建文件夹WebContent(删除原本webapp或WebContent里面的内容)

将solr运行包里面的D:\\运行包\\solr\\dist里面的solr.war解压,并把其中的内容复制到新建的文件夹WebContent

(6)把solrhome复制出来

D:\\源码包\\solr\\solr\\example\\里面的solr复制到D:\\源码包\\solr\\solr并重命名为solrhome

(7)配置solr/home

找到项目的webapp/WEB-INF/web.xml

<env-entry><env-entry-name>solr/home</env-entry-name><env-entry-value>/put/your/solr/home/here</env-entry-value><env-entry-type>java.lang.String</env-entry-type></env-entry>

(8)引入必须的jar

D:\\源码包\\solr\\webapp\\WEB-INF\\lib

D:\\源码包\\solr\\contrib下每个lib文件夹


出现的问题---日志包的问题,一直提示日志包中的类找不到 严重: Exception starting filter SolrRequestFilter java.lang.NoClassDefFoundError: Failed to initialize Apache Solr: Could not find necessary SLF4j logging jars. If using Jetty, the SLF4j logging jars need to go in the jetty lib/ext directory. For other containers, the corresponding directory should be used. For more information, see:  http://wiki.apache.org/solr/SolrLogging     at org.apache.solr.servlet.CheckLoggingConfiguration.check(CheckLoggingConfiguration.java:28)     at org.apache.solr.servlet.BaseSolrFilter.<clinit>(BaseSolrFilter.java:31)     at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)     at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)     at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)     at java.lang.reflect.Constructor.newInstance(Constructor.java:526)     at java.lang.Class.newInstance(Class.java:379)     at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:140)     at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:258)     at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:105)     at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4809)     at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5485)     at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)     at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559)     at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549)     at java.util.concurrent.FutureTask.run(FutureTask.java:262)     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)     at java.lang.Thread.run(Thread.java:745)

需要导入几个jar包来解决错误

  1、添加一个slf4j-nop-1.6.0.jar包

  2、把slf4j-api-1.5.2.jar 换成 slf4j-api-1.6.0.jar

       3. 加载 common-logging.jar

三个jar包都修改完毕,直接在tomcat中运行即可启动solr源码war项目


下面是我调试之后可以运行的solr源码war项目,只需要将solrhome换成你的地址就可以

运行了.

链接:http://pan.baidu.com/s/1bXkk9K 密码:72uf


上面的包中已经添加了mmseg分词器的相关jar包 不过要在tomcat中运行还要在

添加一个jar包,地址如下

链接: http://pan.baidu.com/s/1eR9v3u6 密码:had7
http://www.656463.com/article/EzmaYv.htm  这篇文章可以参考这个是4x系列的 内容比较多

下面上两幅图--
solr项目启动成功


solr项目访问成功





以上是关于solr入门之solr5x源码在eclipse中运行及添加mmseg分词器的主要内容,如果未能解决你的问题,请参考以下文章

solr入门之solr5x源码在eclipse中运行及添加mmseg分词器

ant编译solr源码生成eclipse项目,解决一直resolve,一直[ivy:retrieve]的问题

solr入门之Solr函数查询初使用之查询字段是否包含指定内容

solr入门之solr的拼写检查功能的应用级别尝试

solr入门之solr的拼写检查功能的应用级别尝试

solr搜索之入门及原理