欢迎投稿

今日深度:

Solr安装配置,

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


启动遇到如下错误,使用如下命令启动:

./bin/solr start -force

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

./bin/solr start -p 8081 -force


solr相关命令

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

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

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

二、配置内核

创建时可能会遇到错误提示,提示你找不到***.xml资源,如下图所示(下图是我创建另一个内核的错误信息截图哦):

我们将"/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"根据自己的目录进行替换。
创建好之后如下所示:

三、配置中文分词器
下载ik-analyzer-8.1.0.jar

选择自己需要的版本:

注: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

添加如下内容:

<!-- ik分词器 -->
<fieldType name="text_ik" class="solr.TextField">
  <analyzer type="index">
      <tokenizer class="org.wltea.analyzer.lucene.IKTokenizerFactory" useSmart="false" conf="ik.conf"/>
      <filter class="solr.LowerCaseFilterFactory"/>
  </analyzer>
  <analyzer type="query">
      <tokenizer class="org.wltea.analyzer.lucene.IKTokenizerFactory" useSmart="true" conf="ik.conf"/>
      <filter class="solr.LowerCaseFilterFactory"/>
  </analyzer>
</fieldType>

解压jar包可以看到如下文件:

将"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

bin/solr restart -force

查看效果:
(1)未添加分词之前

(2)添加分词之后

(3)编辑"ext.dic"文件,内容如下:

效果如下:(可以看到"词器"也被当做一个词了)

四、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",在配置文件中添加如下内容:

<!--添加DataImport的jar和数据库连接的jar -->
<lib dir="${solr.install.dir:../../../..}/dist/dataimporthandler" regex=".*\.jar" />
<lib dir="${solr.install.dir:../../../..}/dist/db" regex=".*\.jar" />

<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">
    <lst name="defaults">
      <str name="config">data-config.xml</str>
    </lst>
</requestHandler>

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

<?xml version="1.0" encoding="UTF-8" ?>
<dataConfig>
<dataSource type="JdbcDataSource"
     driver="com.mysql.jdbc.Driver"
     url="jdbc:mysql://localhost:3306/user"
     user="root"
     password="123456"/>
<document>
  <entity name="user" query="SELECT * FROM user ">
     <field column="id" name="id"/>
     <field column="username" name="user_username"/>
     <field column="sex" name="user_sex"/>
     <field column="address" name="user_address"/>
  </entity>
</document>
</dataConfig>

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",添加如下内容:

<field name="user_username" type="string" indexed="true" stored="true" />
<field name="user_sex" type="string" indexed="true" stored="true" />
<field name="user_address" type="string" indexed="true" stored="true" />

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


注:操作后可能会在log中出现如下警告信息:

只需要在"/usr/local/solr/solr-8.1.1/server/solr/admin/conf"目录下创建一个空的"dataimport.properties"文件即可。
配置完成之后一定要记得重启,重启之后重新导入,这时就没有这个警告了。

点击查询查看我们user表中的数据是否导入成功:

五、java操作solr

<dependency>
   <groupId>org.apache.solr</groupId>
    <artifactId>solr-solrj</artifactId>
    <version>8.1.1</version>
</dependency>
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

www.htsjk.Com true http://www.htsjk.com/solr/38104.html NewsArticle Solr安装配置, 下载地址: https://mirrors.tuna.tsinghua.edu.cn/apache/lucene/solr/8.1.1/ 注:这里我使用的8.1.1版本,可以根据自己需要选择版本。若是版本相差较大,可能安装配置方式有所不同。...
相关文章
    暂无相关文章
评论暂时关闭