Solr安装配置

下载地址:
https://mirrors.tuna.tsinghua.edu.cn/apache/lucene/solr/8.1.1/
注:这里我使用的8.1.1版本,可以根据自己需要选择版本。若是版本相差较大,可能安装配置方式有所不同。
下载完成之后有个:solr-8.1.1.tgz
JDK8安装略。
一、安装配置solr
1、解压

tar zxf solr-8.1.1.tgz

解压后目录如下所示:
在这里插入图片描述
2、启动solr
solr启动脚本放置在solr-8.1.1/bin目录下。
切换到解压目录并启动:

 ./bin/solr start

Solr安装配置_第1张图片
启动遇到如下错误,使用如下命令启动:

./bin/solr start -force

默认端口:8983
指定端口启动

./bin/solr start -p 8081 -force

Solr安装配置_第2张图片
solr相关命令

bin/solr stop -all 		     关闭solr服务
bin/solr start -force 		开启solr服务
bin/solr restart -force   重启solr服务
bin/solr status			    查看solr服务状态

3、访问:
http://ip:端口/solr

Solr安装配置_第3张图片

注意:当我们修改了配置或者添加了jar或者其他资源之后,必须重启服务才能生效,之后内容不再赘余。

二、配置内核
Solr安装配置_第4张图片
创建时可能会遇到错误提示,提示你找不到***.xml资源,如下图所示(下图是我创建另一个内核的错误信息截图哦):
Solr安装配置_第5张图片
我们将"/usr/local/solr/solr-8.1.1/server/solr/configsets/_default/conf"目录下的所有文件拷贝到"/usr/local/solr/solr-8.1.1/server/solr/admin"目录下即可。

cp -r /usr/local/solr/solr-8.1.1/server/solr/configsets/_default/conf /usr/local/solr/solr-8.1.1/server/solr/admin

注:如上"/usr/local/solr/solr-8.1.1"根据自己的目录进行替换。
创建好之后如下所示:
Solr安装配置_第6张图片
三、配置中文分词器
下载ik-analyzer-8.1.0.jar
Solr安装配置_第7张图片
选择自己需要的版本:
Solr安装配置_第8张图片
注:ik-analyzer版本最好与solr版本对应
下载完成之后,将jar包放置在"/usr/local/solr/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib"目录下。
切换到"/usr/local/solr/solr-8.1.1/server/solr/admin/conf"

vim managed-schema

添加如下内容:



  
      
      
  
  
      
      
  

解压jar包可以看到如下文件:
Solr安装配置_第9张图片
将"ext.dit"、“IKAnalyzer.cfg.xml”、“stopword.dic"三个文件放置在”/usr/local/solr/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/classes"目录下。要是没有classes目录自己创建即可。
其中"ext.dit"中可以添加用户自定义的分词,每个词用回车分隔。
其中"IKAnalyzer.cfg.xml"中配置如下所示:
Solr安装配置_第10张图片
重启solr

bin/solr restart -force

查看效果:
(1)未添加分词之前
Solr安装配置_第11张图片
(2)添加分词之后
Solr安装配置_第12张图片
(3)编辑"ext.dic"文件,内容如下:
在这里插入图片描述
效果如下:(可以看到"词器"也被当做一个词了)
Solr安装配置_第13张图片

四、solr配置DataImport
例如我们想将数据库user中的数据库表user中的数据导入到solr中:
1、创建数据库表user并插入数据

CREATE TABLE `user` (
  `id` int(11) NOT NULL,
  `username` varchar(45) COLLATE utf8_bin DEFAULT NULL,
  `sex` varchar(45) COLLATE utf8_bin DEFAULT NULL,
  `address` varchar(45) COLLATE utf8_bin DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin

2、修改配置文件
找到当前内核的配置文件,例如"/usr/local/solr/solr-8.1.1/server/solr/admin/conf/solrconfig.xml",在配置文件中添加如下内容:





    
      data-config.xml
    

3、添加"data-config.xml"文件
在"/usr/local/solr/solr-8.1.1/server/solr/admin/conf/"目录下创建"data-config.xml"文件并添加如下内容(注:文件内容自己调整):





  
     
     
     
     
  


4、下载jar包
如上(2)的配置文件添加的内容我们也看到了添加了jar包的路径,现在我们要将需要的这两个jar包放置到对应的位置,两个jar包如下:
在这里插入图片描述
下载如上两个jar包,将其放置在"/usr/local/solr/solr-8.1.1/dist",新建目录"dataimporthandler"和"db",将"solr-dataimporthandler-8.1.1.jar"放置在"dataimporthandler"目录下,将"mysql-connector-java-8.0.16.jar"放置在"db"目录下。

5、修改schema文件
修改"/usr/local/solr/solr-8.1.1/server/solr/admin/conf"目录下的"managed-schema",添加如下内容:




注:如上的字段名必须和(3)中的进行对应。
6、开始导入user表中的数据,如下操作:

Solr安装配置_第14张图片
注:操作后可能会在log中出现如下警告信息:
Solr安装配置_第15张图片
只需要在"/usr/local/solr/solr-8.1.1/server/solr/admin/conf"目录下创建一个空的"dataimport.properties"文件即可。
配置完成之后一定要记得重启,重启之后重新导入,这时就没有这个警告了。

点击查询查看我们user表中的数据是否导入成功:
Solr安装配置_第16张图片

五、java操作solr


   org.apache.solr
    solr-solrj
    8.1.1

import java.io.IOException;

import org.apache.solr.client.solrj.SolrQuery;
import org.apache.solr.client.solrj.SolrServerException;
import org.apache.solr.client.solrj.impl.HttpSolrClient;
import org.apache.solr.client.solrj.response.QueryResponse;
import org.apache.solr.common.SolrDocument;
import org.apache.solr.common.SolrDocumentList;
import org.apache.solr.common.SolrInputDocument;

public class SolrDemo {
	private static final String URL = "http://192.168.1.9:8081/solr";
	private static final String CORE = "/admin";
	public static void main(String[] args) throws SolrServerException, IOException {
		//添加Document
		HttpSolrClient solr = new HttpSolrClient.Builder(URL + CORE).withConnectionTimeout(10000).withSocketTimeout(60000).build();
		SolrInputDocument doc = new SolrInputDocument();
		doc.setField("id", "1001");
		doc.setField("name", "ch");
		doc.setField("age", "26");
		solr.add(doc);
		solr.commit();
		
		SolrInputDocument doc2 = new SolrInputDocument();
		doc2.setField("id", "1002");
		doc2.setField("name", "button");
		doc2.setField("age", "26");
		solr.add(doc2);
		solr.commit();
        
        //提交修改  
        SolrQuery query = new SolrQuery();  
        //设置solr查询参数
        query.set("q", "id:1001");
        //获取查询结果
        QueryResponse response = solr.query(query);  
        //查询得到文档的集合  
        SolrDocumentList solrDocumentList = response.getResults();  
        System.out.println("查询结果的总数量:" + solrDocumentList.getNumFound());  
        for (SolrDocument solrDocument : solrDocumentList) {
        	System.out.println(solrDocument.get("id"));
        	System.out.println(solrDocument.get("name"));
		}
        
        //删除文档  
  		solr.deleteById("1001");  
  		solr.commit();
  		//删除所有
        solr.deleteByQuery("*:*");
        solr.commit();
  		//关闭连接
		solr.close();
	}
}

相关资料分享如下:
链接:https://pan.baidu.com/s/106dkXoX5ukJmlB-nzJh7Xg
提取码:s79w

你可能感兴趣的:(环境搭建,编程语言)