solr6.4服务器+Tomcat+中文分词器

Solr服务器的搭建

第一步:把solr-6.4.1.zip解压之后,找到solr-6.4.1/server/server-webapp/目录下的webapp文件夹,复制粘贴到tomcat下的webapps下;

第二步:把solr-6.4.1/server/lib/ext目录下的所有jar包、和solr-6.4.1/dist下的solr-dataimporthandler-6.4.1.jar、solr-dataimporthandler-extras-6.4.1.jar粘贴复制到tomcat下的solr项目的WEB-INF/lib目录下;

第三步:把server目录下的solr文件夹粘贴复制到其他目录,然后重命名为:solr-home,这是solr核心文件夹。

第四步:修改tomcat下的solr项目的WEB-INF/web.xml,这一步用来指定默认的solr/home。在web.xml开头附近找到:

<env-entry>
       <env-entry-name>solr/home</env-entry-name>
       <env-entry-value>D:/soft/apache-tomcat-8.0.39/solr-home</env-entry-value>
       <env-entry-type>java.lang.String</env-entry-type>
    </env-entry>

然后取消注释,把<env-entry-value>填第三步solr-home文件夹的地址。

第五步:在tomcat下的solr项目的WEB-INF下新建classes目录,然后把solr-6.4.1/server/resources下的log4j.properties粘贴过去;

做完这五步就基本搭建完成了,可以访问http://localhost:8080/solr/index.html可以到solr的后台做一些配置工作。

下面说一下搭建过程中可能遇到的异常:

1,启动tomcat时如果报下面的错误:

严重: Exception starting filter SolrRequestFilter

java.lang.NoClassDefFoundError: com/codahale/metrics/MetricSet
at java.lang.Class.getDeclaredConstructors0(Native Method)
at java.lang.Class.privateGetDeclaredConstructors(Class.java:2671)
at java.lang.Class.getConstructor0(Class.java:3075)
at java.lang.Class.newInstance(Class.java:412)
at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:119)
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:4700)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5340)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:753)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:729)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:717)
at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1092)
at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1834)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.ClassNotFoundException: com.codahale.metrics.MetricSet
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1333)
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1167)
... 20 more

请把solr-6.4.1/server/lib下的metrics-core-3.1.2.jar,metrics-ganglia-3.1.2.jar,metrics-graphite-3.1.2.jar,metrics-jetty9-3.1.2.jar,metrics-jvm-3.1.2.jar这几个jar包放到tomcat下的solr项目的WEB-INF/lib目录下。这个异常是缺少jar包,具体哪个不清楚,没有把metrics开头的jar包一个一个地测试,有耐心的同学可以找一下具体哪个jar包。

,2,访问http://localhost:8080/solr/index.html时如果报下面的错误:

HTTP Status 403 - Access to the requested resource has been denied
把tomcat下的solr项目的web.xml文件中
 <security-constraint> 
 <web-resource-collection> 
 <web-resource-name>Disable TRACE</web-resource-name> 
 <url-pattern>/</url-pattern> 
 <http-method>TRACE</http-method> 
</web-resource-collection> 
<auth-constraint/> 
</security-constraint> 
 <security-constraint> 
<web-resource-collection> 
 <web-resource-name>Enable everything but TRACE</web-resource-name> 
 <url-pattern>/</url-pattern> 
<http-method-omission>TRACE</http-method-omission> 
</web-resource-collection> 
 </security-constraint> 
这段注释掉。这段配置限制了对solr资源的访问,注释掉就可以访问了。

解决掉上面的异常后,重启tomcat,访问http://localhost:8080/solr/index.html
以上原文:https://blog.csdn.net/u011317027/article/details/56485233 

solr管理界面登录权限配置(

注:

权限配置 最好先别配置 等 测试代码连接到 solr 并成功返回后 再尝试配置

 

)

         1、修改tomcat的tomcat-user.xml ,</tomcat-user>上面添加:

<role rolename="solr"/>

<user username="admin" password="admin" roles="solr"/>

3、  修改solr项目中的D:\projects\solr\server\webapps\solr\WEB-INF \web.xml, 在</web-app>上面添加:

  <security-constraint>

    <web-resource-collection>

           <web-resource-name>Solr Lockdown</web-resource-name>

           <url-pattern>/</url-pattern>

</web-resource-collection>

<auth-constraint>

           <role-name>solr</role-name>

           <role-name>admin</role-name>

</auth-constraint>

  </security-constraint>

  <login-config>

<auth-method>BASIC</auth-method>

<realm-name>Solr</realm-name>

  </login-config>

3、重新启动tomcat,再使用管理界面就必须要输入用户名/密码(admin/admin)了。

Solr服务器配置中文分词器

一.Solr使用中文分析器IK-analyzer时报错java.lang.AbstractMethodError

原因是Solr的版本和IK-analyzer的版本不匹配,IK-analyzer版本过低,现在大家能够在网上下到的IK-analyzer版本一般都是IKAnalyzer2012FF_u1,这个版本已经相当老旧了,这里提供一个较新版本的IK-analyzer:ik_analyzer_solr6

更换Jar后

二.IK-analyzer中文分析器
IKAnalyzer是一个开源的,基于java语言开发的轻量级的中文分词工具包。它是以开源项目Lucene为应用主体的,结合词典分词和文法分析算法的中文分词组件。新版本的IKAnalyzer3.0则发展为 面向Java的公用分词组件,独立于Lucene项目,同时提供了对Lucene的默认优化实现。

使用Solr一般都会配置中文分析器,IKAnalyzer是应用最广的中文分析器,但是在网上能下载到IKAnalyzer版本都比较旧,这是因为这是个开源项目而且原作者好像不太想维护了,所以Solr不断更新,IKAnalyzer一直不更新

三.IK-analyzer的配置
3.1 把中文分析器添加到工程中。
把ik-analyzer-solr6.jar文件添加到Tomcat中的solr工程的lib目录下 
把扩展词典文件ext_stopword.dic、配置文件IKAnalyzer.cfg.xml放到solr工程的WEB-INF/classes目录下

3.2 配置一个FieldType,制定使用IKAnalyzer
修改schema.xml文件(版本不同文件名称可能不同,6以上版本应该是managed-schema文件) 
修改Solr的schema.xml文件,添加FieldType:

<fieldType name="text_ik" class="solr.TextField">
  <analyzer class="org.wltea.analyzer.lucene.IKAnalyzer"/>
</fieldType>
3.3 配置业务域,type制定使用自定义的FieldType
设置业务系统Field,在schema.xml文件中添加:

<field name="item_title" type="text_ik" indexed="true" stored="true"/>
<field name="item_sell_point" type="text_ik" indexed="true" stored="true"/>
<field name="item_price"  type="long" indexed="true" stored="true"/>
<field name="item_image" type="string" indexed="false" stored="true" />
<field name="item_category_name" type="string" indexed="true" stored="true" />
<field name="item_keywords" type="text_ik" indexed="true" stored="false" multiValued="true"/>
<copyField source="item_title" dest="item_keywords"/>
<copyField source="item_sell_point" dest="item_keywords"/>
<copyField source="item_category_name" dest="item_keywords"/>
以上原文:https://blog.csdn.net/eagleuniversityeye/article/details/79967545 
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值