Solr基础
1. solr简介
为了在CNET 公司网站上添加搜索功能,Yonik Seely于2004年创建了Solr。并在2006年1月,它成为Apache软件基金会下的一个开源项目。并于2016年发布新版本Solr 6.0,支持并行SQL查询的执行,目前最新的版本是8.6.0
2. solr和lucene的区别
Lucene是一个开放源代码的全文检索工具包,它不是一个完整的全文检索应用。Lucene仅提供了完整的查询引擎和索引引擎 仍然需要关注数据获取、解析、索引查看等方面的东西。Lucene的目的是为软件开发人员提供一个简单易用的工具包,以方便的在目标系统中实现全文检索的功能,或者以Lucene为基础构建全文检索应用
Solr的目标是打造一款企业级的搜索引擎系统,它是基于Lucene一个搜索引擎服务,可以独立运行,通过Solr可以非常快速的构建企业的搜索引擎,通过Solr也可以高效的完成站内搜索功能
优势:
1、solr是已经将整个索引操作功能封装好了的搜索引擎系统(企业级搜索引擎产品)
2、solr可以部署到单独的服务器上(WEB服务)提供服务,我们的业务系统就只要发送请求,接收响应即 可,降低了业务系统的负载并且solr的索引库就不会受业务系统服务器存储空间的限制
3、solr支持分布式集群,索引服务的容量和能力可以线性扩展
3. 核心特性
-
先进的全文搜索功能
-
基于标准的开放接口,Solr搜索服务器支持通过XML、JSON和HTTP查询和获取结果。
-
高度可扩展和容错,能够有效地复制到另外一个Solr搜索服务器
-
Solr可以通过HTML页面管理,使用XML配置达到灵活性和适配性
-
灵活的插件体系 新功能能够以插件的形式方便的添加到Solr服务器上。
-
强大的数据导入功能 数据库和其他结构化数据源现在都可以导入、映射和转化。
4. 安装方式
方式一:
-
下载压缩包
直接去官网下载 https://lucene.apache.org/solr/downloads.html wget https://dlcdn.apache.org/lucene/solr/8.11.2/solr-8.11.2.tgz
-
解压
tar -xvf solr-8.11.2.tgz
-
启动solr
#在solr bin目录下 默认端口 8983 ./solr start -force -port 端口
-
使用浏览器访问
http://主机:端口
-
配置solr_core
在server/solr下建立一个文件夹名字: 任意取名,如 new_core
cp -rf configsets/_default/conf/ new_core
修改 managed-schema 为 schema.xml
方式二:
主要是部署到tomcat 下, 这种方式现在不常用, 不做演示.
5. 管理界面功能介绍
Dashboard
仪表盘,显示了该Solr实例开始启动运行的时间、版本、系统资源、jvm等信息。
Logging
日志:显示 solr 运行出现的异常或错误
Cloud
Cloud即SolrCloud,即Solr云(集群),当使用Solr Cloud模式运行时会显示此菜单。
Core Admin
Solr Core的管理界面。在这里可以添加SolrCore实例。
Core管理: 主要有 Add Core(添加核心), Unload(卸载核心),Rename(重命名核心), Reload(重 新加载核心)
Add Core 是添加 core : 主要是在instanceDir对应的文件夹里生成一个 core.properties 文件
name:给 core 起的名字;
instanceDir:与我们在配置 solr 到 tomcat 里时的 solr_home 里新建的 core 文件夹名一致;
dataDir:确认 Add Core 时,会在 new_core 目录下生成名为 data 的文件夹
config:new_core 下的 conf 下的 config 配置文件(solrconfig.xml)
schema: new_core 下的 conf 下的 schema 文件(schema.xml)
java properties
Solr在JVM 运行环境中的属性信息,包括类路径、文件编码、jvm内存设置、jdk等信息。
Thread Dump
显示Solr Server中当前活跃线程信息,同时也可以跟踪线程运行栈信息。
Core selector
可以选择一个SolrCore进行详细操作
Analysis
通过此界面可以测试索引分析器和搜索分析器的执行情况
Dataimport
可以定义数据导入处理器,从关系数据库将数据导入到Solr索引库中。
默认没有配置,需要手工配置。
Documents
通过/update表示更新索引,solr默认根据id(唯一约束)域来更新Document的内容,如果根据id值搜
索不到id域则会执行添加操作,如果找到则更新。
overwrite=“true” : solr在做索引的时候,如果文档已经存在,就用xml中的文档进行替换
commitWithin=“1000” : solr 在做索引的时候,每隔1000(1秒)毫秒,做一次文档提交。为了方
便测试也可以在Document中立即提交,
后添加 “”
如:name:solr
Ping: 查看当前核心库还是否工作的以及响应时间
Query
通过/select执行搜索索引,必须指定“q”查询条件方可搜索。
Replication
显示你当前 Core 的副本,并提供 disable/enable 功能
Schema
展示该 Core 的 shema.xml 文件中的内容
展示该Core的shema数据,如果是用ManagedSchema模式,还可以通过该页面修改,增加,删除schema 的字段
Segments info
展示底层Lucence的分段信息。