设为首页 收藏本站
查看: 667|回复: 0

[经验分享] solr搭建搜索

[复制链接]

尚未签到

发表于 2016-12-14 09:25:36 | 显示全部楼层 |阅读模式
  http://www.52menshao.com/content/1122
  一,安装部署solr
  1. 下载tomcat解压,这里选择的是tomcat8
  2. 下载solr最新版本(4.10.1)并解压solr文件夹下,下载地址是http://lucene.apache.org/solr/。 并将解压后solr\example\solr中的内容拷贝至的solrHome\下
  3. 将solr解压后的solr\dist\solr-4.10.1.war 拷贝至apache-tomcat-8.0.12\webapps目录,并重命名为solr.war。
  4. 在apache-tomcat-8.0.12\conf\server.xml中配置solr的Context,顺便修改端口号8080为80
<Context path="/solr" docBase="solr" reloadable="false" crossContext="true">
   <Environment name="solr/home" type="java.lang.String" value="D:\workspace\develop\study\sorl_test\solrHome"/>
</Context>

  5. 启动tomcat,并访问solr:http://localhost/solr,页面显示404,并在localhost日志中可以看到错误信息
SEVERE [localhost-startStop-1] org.apache.catalina.core.StandardContext.filterStart 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)

  6. 将solr\example\lib\ext下的jar文件件,拷贝至apache-tomcat-8.0.12\webapps\solr\WEB-INF\lib下
  7. 重新启动,并访问solr
DSC0000.png

  测试分词效果
DSC0001.png

  二,为solr增加用户验证
  1. 在tomcat的apache-tomcat-8.0.12\conf\tomcat-users.xml 添加用户角色并指定访问的用户名密码
<role rolename="solr"/>
<user username="solr" password="52menshao" roles="solr"/>

  2. 在apache-tomcat-8.0.12\webapps\solr\WEB-INF\web.xml中添加用户访问权限设置

<security-constraint>
      <web-resource-collection>
          <web-resource-name>Solr Lockdown</web-resource-name>
          <url-pattern>/</url-pattern>
          <http-method>GET</http-method>
          <http-method>POST</http-method>
      </web-resource-collection>
      <auth-constraint>
          <description>This applies only to the "tomcat" security role</description>
          <role-name>solr</role-name>
          <role-name>admin</role-name>
      </auth-constraint>
      <user-data-constraint>
          <transport-guarantee>NONE</transport-guarantee>
      </user-data-constraint>
  </security-constraint>
  
  <login-config>
      <auth-method>BASIC</auth-method>
      <realm-name>Solr</realm-name>
  </login-config>

DSC0002.png

  三、为solr添加中文分词
  1. 在不做任何改动的情况下,做中文分词如下
DSC0003.png

  2. 此次为solr进行中文分词,选择的组件是mmseg4j,开源地址是:https://github.com/chenlb/mmseg4j-solr
  mmseg4j支持最多分词,是一款很优秀的中文分词器,是用Chih-Hao Tsai 的 MMSeg 算法( http://technology.chtsai.org/mmseg/ )实现的中文分词器,并实现 lucene 的analyzer 和 solr 的TokenizerFactory 以方便在Lucene和Solr中使用。 
  3. 下载中文分词需要依赖的jar包,放于apache-tomcat-8.0.12\webapps\solr\WEB-INF\lib下
  1. mmseg4j-for-solr(mmseg4j-solr-2.2.0.jar)           2. mmseg4j-core(mmseg4j-core-1.10.0.jar)
  4.  修改solr_home\collection1\conf\schema.xml,
       4.1 添加如下代码,代码片段可以从https://github.com/chenlb/mmseg4j-solr中直接拷贝,可修改dicPath 参数 - 设置自定义的扩展词库,支持相对路径(相对于 solr_home).
DSC0004.png

 

   4.2 更改原有配置,使原有一些重要的字段从英文分词器换成中文分词器,使之支持中文分词
DSC0005.png

  5. 重启tomcat查看效果
DSC0006.png

  四、 Solr后台的使用
       略,这里可以自己先了解一下,功能一目了然

  五、SorlJ的使用
   添加solrj的jar文件
<dependency>
    <groupId>org.apache.solr</groupId>
    <artifactId>solr-solrj</artifactId>
    <version>4.10.1</version>
  </dependency>


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-314074-1-1.html 上篇帖子: Solr: Using FunctionQuery in SOLR Sort Syntax 下篇帖子: Tomcat 中使用 solr
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表