Apache Solr搜索引擎开发框架

为什么要学习搜索引擎开发框架

常见的搜索引擎框架:

1.Solr

2.ElasticSearch 搭建ELK环境(ElasticSearch+Logback+Kabana)实现日志系统的搭建

Solr是基于Apache Lucene构建的流行,快速,开源的企业搜索平台。

Solr具有高可靠性,可扩展性和容错性,可提供分布式索引,复制和负载均衡查询,自动故障转移和恢复,集中配置等。Solr为世界上许多最大的互联网站点的搜索和导航功能提供支持

Solr的使用

启动solr

Jetty服务器启动Solr(了解) 步骤:
进入solr-4.10.2/example目录
打开命令行,执行java –jar start.jar命令,即可启动Solr服务 

solr类似于jdbc

1.下载与安装

第一步:首先在{solr_home}/server//solr/{democore}

第二步:下一步在solr目录下configsets/_default/conf将conf目录复制到democore下

然后通过管理控制页面创建democore表单正常填写

2.运行solr

2.Solr常用的命令

solr start -p 端口号 单机版启动solr五福

solr restart -p 端口号 重启solr服务

solr stop -p 端口号关闭solr服务

solr creat -c name 创建一个core实例(core概念后面介绍)

创建core的核心介绍

第四步:简单说core就是solr的一个实例,一个solr服务下可以有多个core,每个core下都有自己的索引库和与之相应的配置文件,所以在操作solr创建索引之前要创建一个core,因为索引都存在core下面

第五步:将mysql数据库使用的jar包 和 solr\dis\solr-dataimporthandler-7.7.0.jar 复制到 solr webapp\webinf\lib\下

3.创建core实例

1.创建核心准备工作

2.创建核心

4.配置schema

4.1 schema主要成员

4.2 添加索引字段

4.3 配置中文分词器

ext.dic词库文件

IKAnalyzer.cfg.xml配置文件

ik-analyzer-solr5-5.x.jar、solr-analyzer-ik-5.1.0.jar核心jar文件

stopword.dic停用词库

2.将D:\Solr7.7\ikanalyzer-solr5两个jar包复制到该路径下:D:\Solr7.7\solr-7.7.0\server\solr-webapp\webapp\WEB-INF\lib

3.另外将三个配置文件复制到该路径下:D:\Solr7.7\solr-7.7.0\server\solr-webapp\webapp\WEB-INF\classes 如果没有classes文件夹就手动创建一个新的,将ext.dic、IKAnalyzer.cfg.xml、stopword.dic放到classes文件夹中

测试分词器:

五:DatalmoprtHandler(DIH)导入索引数据(以mysql为例)

导入mysql数据handler

在D:\Solr7.7\solr-7.7.0\server\solr\democore\conf目录下编辑solrconfig.xml/select上方加入下面代码:在此文件的694行

my-data-config.xml

数据入库

六:Solr(java客户端)

6.1 导入pom

<dependency> 
<groupId>org.apache.solr</groupId>
 <artifactId>solr-solrj</artifactId> 
<version>7.4.0</version> 
</dependency> 
或
 <dependency> 
<groupId>org.apache.solr</groupId>
 <artifactId>solr-solrj</artifactId>
 <version>7.5.0</version> 
</dependency>
两个版本

6.2编写model

6.3写测试代码(4.0版本)

public static void main(String[] args) {
 try { //1.创建Solr服务的http请求 HttpSolrClient.Builder builder=new            HttpSolrClient.Builder("http://localhost:8983/solr/democore").withConnectionTimeout(10000);
 //2.创建solr连接客户端 
HttpSolrClient client=builder.build();
 //3.构建solr查询 
SolrQuery query=new SolrQuery("*:*"); 
//4.设置查询显示列 query.setFields("id","proname","count","createdate");
 //5.查询 QueryResponse response=client.query(query); 
//6.提取查询结果集 SolrDocumentList list=response.getResults();
 //7.循环遍历结果集 System.out.println(list.getNumFound()); 
for (SolrDocument entries : list) { System.out.println(entries.getFieldValue("id")+"----"+entries.getFieldValue("proname") +"----"+entries.getFieldValue("count")+"----"+entries.getFieldValue("createdate")); } //8.关闭连接 
client.close(); 
}catch (SolrServerException e){
 e.printStackTrace(); 
}catch (IOException ex)
{ ex.printStackTrace(); 
}
}

//4.设置查询显示列
 query.setFields("id","proname","count"); 
//设置条件查询 
query.set("q","proname:2022");
 //排序
 query.addSort("id",SolrQuery.ORDER.desc); 
//分页查询
 query.setStart(0); 
query.setRows(5);
 //5.查询
 QueryResponse response=client.query(query);

所用工具:IKAnalyzer中文分词器:一个第三方分词器

Solr增量配置

第一步:准备jar包将solr-data-import-scheduler.jar jar包放在D:\Solr7.7\solr-7.7.0\server\solr-webapp\webapp\WEB-INF\lib

第二步:修改web.xml文件

D:\Solr7.7\solr-7.7.0\server\solr-webapp\webapp\WEB-INF

打开web.xml文件,添加监听器配置:

<listener> <listener-class>org.springframework.context.ApplicationListener</listener-class> </listener>

第三步:增加dataimport.properties配置

在D:\Solr7.7\solr-7.7.0\server\solr-webapp\webapp\WEB-INF\lib下添加

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值