第一部分 solr安装
1.下载solr的压缩文件:wget http://mirrors.shuosc.org/apache/lucene/solr/5.5.5/solr-5.5.5.tgz
2.解压压缩包:[root@localhost ~]# tar -zxvf solr-5.5.5.tgz
3.把solr部署到tomcat下:把solr-5.5.5下面的server下面的solr-webapp下面的webapp复制到tomcat的webapps下,改名为solr(随便起名) mv webapp solr
cp -r webapp/ /root/usr/java/apache-tomcat-8.5.31/webapps/
4.把solr-5.5.5下面的server下面的lib下面的ext下面的所有jar 全部复制到 Tomcat\ webapps\solr\WEB-INF\lib 目录中
cp * /root/usr/java/apache-tomcat-8.5.31/webapps/solr/WEB-INF/lib/
5.将 solr 压缩包中 solr-5.5.5/server/resources /log4j.properties 复制到Tomcat\ webapps\solr\WEB-INF\lib 目录中
cp log4j.properties /root/usr/java/apache-tomcat-8.5.31/webapps/solr/WEB-INF/lib/
6.关联solr及solrhome。需要修改solr工程的web.xml文件
把solr-5.5.5/server/的solr复制到机器的某个位置 我放在usr/java/solr
进入 pwd /root/usr/java/solr
复制当前路径到tomcat的web.xml文件/root/usr/java/solr
7.修改tomcat的web.xml
[root@localhost ~]# vim usr/java/apache-tomcat-8.5.31/webapps/solr/WEB-INF/web.xml
解开注释 把solrhome路径放进去
然后启动tomcat就可以访问了
第二部分 添加core
在管理界面添加core时失败了,这时候需要去usr/java/solr/下面创建一个文件夹。我的文件夹叫做new_core
然后把解压后的solr文件夹中的/root/solr-5.5.5/server/solr/configsets/sample_techproducts_configs/conf复制到new_core中
然后重启tomcat,再去管理页面添加core
第三步 solr整合spring
<!-- solr整合spring -->
<bean id="solrServer" class="org.apache.solr.client.solrj.impl.HttpSolrServer" >
<constructor-arg index="0" value="http://192.168.58.128:8080/solr/new_core" />
</bean>
第四步 IK分词器的配置
1.下载IK分词器的地址:https://github.com/medcl/elasticsearch-analysis-ik/releases
2.把下载的压缩包解压到usr/ik,然后把elasticsearch-analysis-ik-6.2.4.jar复制到/root/usr/java/apache-tomcat-8.5.31/webapps/solr/WEB-INF/lib/
3.在/root/usr/java/solr/new_core/conf/managed-schema中配置IK分词器
<fieldType name="text_ik" class="solr.TextField">
<analyzer class="org.wltea.analyzer.lucene.IKAnalyzer"/>
</fieldType>
<field name="name_ik" type="text_ik" indexed="true" stored="true" />
1.3 配置扩展字典和停词字典
1.在
cd /usr/solr/apache-tomcat-8.5.31/webapps/solr/WEB-INF/
下面创建classes
2.把IK安装包下面的配置文件复制到 classes目录
3.修改IKAnalyzer.cfg.xml开启扩展字典和停词字典
4.修改ext.dic和stopword.dic
第五部分 测试代码
加入的jar
根据jar名称到http://mvnrepository.com/下载点击打开链接
5 // 向solr 服务器里面添加数据
6 @Test
7 public void demo1() throws Exception, IOException {
8 //创建solrServer
9 SolrServer server = new HttpSolrServer("http://192.168.58.128:8080/solr/new_core");
10 //创建存储数据的对象
11 SolrInputDocument document = new SolrInputDocument();
12 document.addField("id",2);
13 document.addField("name","张三");
14 //添加
15 server.add(document);
16 //提交
17 server.commit();
18 }
19
20 //查询所有数据
21 @Test
22 public void demo2() throws Exception {
23 SolrServer server = new HttpSolrServer("http://192.168.58.128:8080/solr/new_core");
24
25 //查询
26 SolrQuery solrQuery = new SolrQuery();
27 solrQuery.set("q","*:*"); //表示查询所有数据
28 QueryResponse queryResponse = server.query(solrQuery);
29 //获取结果集
30 SolrDocumentList docs = queryResponse.getResults();
31 //遍历结果集
32 for (SolrDocument solrDocument : docs) {
33 String id = (String)solrDocument.get("id");
34 String name = (String)solrDocument.get("name");
35 System.out.println(id+"---"+name);
36 }
37 }
测试代码的编写
//删除
@Test
public void demo3() throws Exception {
//删除数据
solrServer.deleteById("1");
solrServer.commit();
}
//更新
@Test
public void demo4() throws Exception {
SolrInputDocument doc = new SolrInputDocument();
doc.setField("id","2");
doc.setField("name","张飞");
solrServer.add(doc);
solrServer.commit();
}
然后又遇到问题,现在只能往里面添加固定 的字段,比如 id,name
如果需要添加更多呢?
就需要在/root/usr/java/solr/new_core/conf/managed-schema的最后添加一些自己需要的列,然后就可以自定义添加了