为什么要学习搜索引擎开发框架
常见的搜索引擎框架:
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下添加文章来源:https://www.toymoban.com/news/detail-449897.html
文章来源地址https://www.toymoban.com/news/detail-449897.html
到了这里,关于Apache Solr搜索引擎开发框架的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!