海量数据下,关系型数据库的搜索效率比较低,最好使用专用搜索工具搜索
基于Apache Lucene(全文检索工具库)
谷歌API
百度API
solr基于Apache Lucene构建的用于搜索和分析的开源解决方案
solr本质是一个内嵌了Jetty服务器的一个Java web项目,请求Solr中控制器,处理完数据后把结果响应给客户端
foward index 和 inverted index
正向索引:从文档内容到词组的过程,每次搜索的实收需要搜索所有文档,每个文档i比较搜索条件和词组
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsISPrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdsATOfd3bkFGazxCMx8VesATMfhHLlN3XnxCMwEzX0xiRGZkRGZ0Xy9GbvNGLpZTY1EmMZVDUSFTU4VFRR9Fd4VGdsYTMfVmepNHLrJXYtJXZ0F2dvwVZnFWbp1zczV2YvJHctM3cv1Ce-cmbw5CM0MjMwEWY5UWNhV2NzIzNyYTZxImYkRDZwETZlR2Nh9CX0EzLchDMxIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLzM3Lc9CX6MHc0RHaiojIsJye.png)
反向索引:正向索引的逆向,建立词组和文档的映射关系。通过找到词组就能找到内容
Solr能够提升检索效率,是因为分词和索引(反向索引)
分词:怼搜索条件/存储内容进行分词,分成日常所使用的词语
索引:存储在solr中内容按照程序员要求建立索引,如果要求建立索引,会把存储内容中关键字存储索引
使用git下载7.2版本solr
进入solr目录
修改启动参数
之所以修改这个参数,是因为启动的时候有以下报错
启动solr
如果是root账号,会有以下警告
加上force参数
就像vs code,root账户需要参数 --user-data-dir
Solr安装完成后默认没有核心,需要手动配置
在solr/server/solr下新建文件夹,并给定配置文件,否则无法建立
把configsets里面包含的所有配置文件都拷贝到testcore下面
在solr可视化管理界面中,有一个Analysis
ik-analyzer是一个中文分词工具包
solr的ik-analyzer官方地址:https://github.com/magese/ik-analyzer-solr#%E4%BD%BF%E7%94%A8%E8%AF%B4%E6%98%8E
下载对应的jar包,jar包地址:https://search.maven.org/remotecontent?filepath=com/github/magese/ik-analyzer/8.3.1/ik-analyzer-8.3.1.jar
下载到solr下的webapp/WEB-INF/lib目录中
然后是使用wget命令
修改配置文件
vim排版,gg=G
添加下面内容
表示定义一个属性类型,在Solr中属性类型都是自定义的
例如name="text_ik"为自定义类型,当某个属性text_ik时,IK Analyzer才能生效
表示向Document中添加一个属性
常用属性
name,属性名
type,属性类型
indexed,是否建立索引
stored,该属性是否必须,默认id是必须
multiValued,如果为true,复合属性,包含多个属性,常用多个列作为搜索条件时,
把这些列定义成一个新的复合属性,通过搜索一个复合属性实现搜索多个列
当设置为true时与<copyField source="" dest=""/>结合使用
唯一主键,solr中默认定义id属性为唯一主键,ID的值不允许重复
名称中允许*进行通配,代表满足特定名称要求的一组属性
例如
test_*
可以使用solr自带的dataimport功能把数据库中数据快速导入到solr中
必须保证managed-schema和数据库中的表的列对应
修改solrconfig.xml,添加下面内容
和solrconfig.xml同一目录下新建data-config.xml
添加三个jar
solr-dataimporthandler
solr-dataimporthandler-extras
mysql-connector
重启solr,使用可视化界面进行数据导入
根据主键删除
条件删除
SolrJ是Solr提供的Java客户端API
添加SolrJ依赖,官方地址:https://mvnrepository.com/artifact/org.apache.solr/solr-solrj
添加依赖,官方地址:https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-web
添加依赖,官方地址:https://mvnrepository.com/artifact/org.springframework.data/spring-data-solr
启动类
添加一个
Product
添加多个
testInsert2
编写配置文件
创建
停止
重新运行
论读书
睁开眼,书在面前
闭上眼,书在心里