solr-6.3.0部署到tomcat9以及集成IK分词器和通过java使用solrj7.7.1测试

本文详细指导如何将Solr 6.3.0部署到Tomcat 9环境中,包括文件结构调整、jar包管理、配置solr_home、添加IK分词器和字段类型,以及通过Java进行测试,适合初学者和运维人员参考。
摘要由CSDN通过智能技术生成

solr-6.3.0部署到tomcat9

1.首先将下载好的solr-6.3.0\server\solr-webapp中的webapp拷贝一份放到tomcat\apache-tomcat-9.0.44-solr\webapps文件里面,并将webapp修改为solr。
2.将solr-6.3.0\dist文件下的jar包拷贝到tomcat\apache-tomcat-9.0.44-solr\webapps\solr\WEB-INF\lib文件里面
3.将solr-6.3.0\dist\solrj-lib文件下的jar包拷贝到tomcat\apache-tomcat-9.0.44-solr\webapps\solr\WEB-INF\lib文件里面
4.将solr-6.3.0\server\lib\ext文件下的所有jar包拷贝到tomcat\apache-tomcat-9.0.44-solr\webapps\solr\WEB-INF\lib文件里面
5.在tomcat\apache-tomcat-9.0.44-solr\webapps\solr\WEB-INF文件下创建classes文件,将solr-6.3.0\server\resources文件下的log4j.properties配置文件拷贝到创建好的classes文件下面
6.拷贝solr-6.3.0\server文件下的solr文件夹拷贝到磁盘的任意位置(用来存储索引数据的)并改名为solr_home,然后再solr_home文件下创建一个新的文件夹core_1(solr索引库的实例)
7.在tomcat\apache-tomcat-9.0.44-solr\webapps\solr\WEB-INF文件下的web.xml中添加属性并注释掉权限检查

<env-entry>
       <env-entry-name>solr/home</env-entry-name>
       <env-entry-type>java.lang.String</env-entry-type>
       <env-entry-value>solr_home的路径</env-entry-value>
    </env-entry>
<!-- Get rid of error message
  全部注释掉 
  <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>
  -->

8.启动tomcat可以正常访问http://127.0.0.1:8081/solr/index.html#/页面表示上面配置正常(8081是我修改了tomcat的启动端口,第三步好像可以省略掉,第二步好像只需要拷贝solr-dataimporthandle-6.3.0.jar和solr-dataimporthandle-extras-6.3.0.jar,具体我没有研究,按照上面步骤可以正常使用solr服务)
9.在solr_home\core_1文件夹下创建data文件夹,然后将solr-6.3.0\example\example-DIH\solr\solr文件夹里面的conf文件夹拷贝到solr_home\core_1文件夹下
10.在http://127.0.0.1:8081/solr/index.html页面左边选择Core Admin选项点击Add Core,在name和instanceDir中填写core_1(就是你在solr_home里面创建的文件夹的名字),这样就会创建好一个solr索引库实例。(这里个人理解为,它会通过web.xml中找到solr_home然后在里面创建索引实例,并且core_1中如果没有config文件夹就会创建失败)

配置IK分词器,添加字段类型

10.配置ik分词器(这里我直接引用别人的博客)。
下载http://pan.baidu.com/s/1c68HBK将文件夹中的ik-analyzer-solr6.3.jar拷贝到tomcat\apache-tomcat-9.0.44-solr\webapps\solr\WEB-INF\lib里面。然后将文件夹中IKAnalyzer.cfg.xml、mydict.dic、stopword.dic文件拷贝到tomcat\apache-tomcat-9.0.44-solr\webapps\solr\WEB-INF\classes文件夹中(这里就是对IK Analyzer的一些扩展配置,重要的是ik-analyzer-solr6.3.jar)。最后需要在solr_home\core_1\conf中找到managed-schema文件并添加属性

<fieldType name="text_ik" class="solr.TextField">
    <analyzer class="org.wltea.analyzer.lucene.IKAnalyzer"/>
  </fieldType>
<field name="text_ik" type="text_ik" multiValued="true" indexed="true" stored="true"/>

11.添加字段类型。在http://127.0.0.1:8081/solr/index.html页面先点击Core Selector然后选择你的索引实例(就是core_1)然后再点击Schema,再页面的左上角点击Add Field(name就是你的字段名字,field type就是选择使用分词器,推荐使用ik)最后就是Add Field了。

使用java测试

12.通过java使用solr7.7.1操作solr(因为我使用的是spring框架,需要手写xml文件和导包 (˘•灬•˘),别问为什么不用maven)。将solr-6.3.0\dist\solrj-lib文件夹下的所有jar包拷贝到项目中(感觉这个文件夹中的jar包就是需要用在这里)

package com.zengjx;

import org.apache.solr.client.solrj.SolrServerException;
import org.apache.solr.client.solrj.impl.HttpSolrClient;
import org.apache.solr.common.SolrDocument;
import org.apache.solr.common.SolrInputDocument;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;

import java.io.IOException;

/**
* @author: FastRabbit
* @date: 2021/4/5 20:47
* @description:
*/
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = "classpath:applicationContext.xml")
public class SolrTest {

  @Test
  public void solrTest() throws IOException, SolrServerException {

      //链接solr的url
      String SOLR_URL = "http://localhost:8081/solr/core_1";

      //创建链接、创建文档对象并设置属性值
      HttpSolrClient build = new HttpSolrClient.Builder(SOLR_URL).withSocketTimeout(100000).build();
      SolrInputDocument solrInputFields = new SolrInputDocument();
      solrInputFields.addField("id",2);
      solrInputFields.addField("username","ls");
      solrInputFields.addField("password","456");
      build.add(solrInputFields);
      build.commit();

  }

}

13.你用ElasticSearch它不香吗?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值