您的位置 首页 java

Solr是什么,怎么使用Solr

Solr

Apache Lucene项目的开源企业搜索平台。其主要功能包括全文检索、命中标示、分面搜索、动态聚类、数据库集成,以及富文本(如Word、PDF)的处理。 solr 是高度可扩展的,并提供了 分布式 搜索和索引复制。Solr是最流行的企业级搜索引擎,Solr4 还增加了NoSQL支持。

官网链接:

Solr特性

独立的企业级搜索服务,基于http以类-REST API 对外提供服务

  • 你可以通过http协议将文档以JSON/XML/ CSV /binary格式发送给Solr进行索引。
  • 你通过http GET 请求进行查询,可返回JSON/XML/CSV/binary格式的搜索结果。

近实时的索引能力

  • 文档数据提交索引后,立马就可看到

先进的全文检索能力

  • 基于Lucene的强大搜索能力,支持任意数据类型的短语、通配、连接、分组等等查询

综合的管理界面

  • Slor内建了综合的管理用户界面,让你方便的管理你的solr实例。

通过简单的配置方式来提供高灵活性、适用性。

高伸缩和容错能力

  • 基于zookeeper,solr支持分布式、备份、再平衡,来提供高伸缩和容错能力

插件体系架构,易扩展

  • Solr发布了许多定义良好的扩展点,这使得插件很容易插入索引和查询时的过程中。

Solr原理

Solr对外提供标准的http接口来实现对数据的索引的增加、删除、修改、查询。在Solr中,用户通过向部署在servlet 容器中的 Solr Web 应用程序发送 HTTP 请求来启动索引和搜索。Solr 接受请求,确定要使用的适当SolrRequestHandler,然后处理请求。通过 HTTP 以同样的方式返回响应。默认配置返回Solr 的标准 XML 响应,也可以配置Solr的备用响应格式。

Solr应用架构

应用需要添加搜索能力,只需三步:

  1. 在solr中定义一个schema(模式),来告诉solr你要索引的文档document由哪些Field构成。
  2. 将需要让用户搜索的文档发送给solr
  3. 在你的应用中公开搜索功能。应用的搜索功能通过调用Solr的搜索API实现。

Solr安装

下载地址:

Solr 7.7.3

Solr 7.7.3 is the last release in the 7.x series.

  • Source release: solr-7.7.3-src.tgz [PGP] [SHA512]
  • bin ary releases: solr-7.7.3.tgz [PGP] [SHA512] / solr-7.7.3.zip [PGP] [SHA512]

windows:点击solr-7.7.3.zip下载, Linux :solr-7.7.3.tgz

安装准备

Solr的安装很简单,只需解压到安装目录。但在安装之前针对你的使用环境:开发、测试、生产,需要进行一个评估,来决定:是在独立的机器上部署单应用服务;还是需要分布式集群。

特别是在生产环境部署时,需认真评估需要的服务规模。考量因素:

  • 文档的数量、结构
  • 要存储的字段数量
  • 用户数量
  • 影响硬件规模的因素

Lucene的严格限制:单个索引中的最大文档数: 约2.14 billion documents (约21.4亿,2,147,483,647 )

实际中不可能在单个索引中达到这个文档数量级还运行良好,在到达这个数量之前早就会用分布式索引集群。如果在部署时,就能估计出将达到如此量级,就应该用solrCloud分布式集群方式安装。

解压后的目录:

bin:启动,停止等命令目录,属性配置脚本(系统级的 Java 、jetty、solr的配置属性)

contrib:Solr的插件存放目录

dist:Solr的jar存放目录

example:示例

server :Solr应用的核心目录

  • Solr’s Admin UI (server/solr-webapp)
  • Jetty libraries (server/lib)
  • Log files (server/logs) and log configurations (server/resources).
  • Sample configsets (server/solr/configsets)

本地需要安装Jdk1.8环境,进入Solr的安装目录的bin目录下,cmd,输入solr.cmd start命令。Solr启动成功,浏览器输入:

Solr 管理控制台介绍

DashBoard:仪表盘

Logging:日志查看,设置

Core Admin:内核管理菜单

Java Properties:Java属性浏览

Tread Dump:线程转储

No cores avaliable:包含的core列表

Solr core 介绍

内核:是运行在Solr服务器中的具体唯一命名的、可管理和可配置的索引。一台solr服务器可以托管一个或多个内核。

不同的文档拥有不同的模式(字段构成、索引、存储方式),如商品数据和新闻数据就有不同的字段构成以及不同的字段索引、存储方式。就需要分别用两个内核来索引、存储它们。

内核的典型用途:区分不同模式的文档

创建内核

创建有两种方式,1.通过控制台,2.通过命令

1.web管理控制台加载已存在的内核

需要先添加new_core目录和solrconfig.xml,在Solr的安装目录的server/solr目录下,创建文件new_core,将该目录下的configsets/_default目录中的conf拷贝到新建的new_core下。

返回到刚才的页面,点击Add Core

2.命令行命令创建一个新的内核

-c:内核名称

-d:内核创建依据的配置、模式文件目录

-p:在哪个solr服务实例上创建

-d 选项可选值有两个:

_default 默认值,最少配置;

sample_techproducts_cnofigs 示例的配置

分别用它们创建一个内核:

solr.cmd create_core –c mycore

solr.cmd create_core -c techproducts –d sample_techproducts_configs

内核创建完成,导入写样例数据:

 Linux/Mac
      solr-7.7.3:$ bin/post -c techproducts example/exampledocs/* 
Windows
      solr-7.7.3> java -jar -Dc=techproducts -Dauto example\exampledocs\post.jar example\exampledocs\* 
  

导入52个文档测试数据

测试查询

qt:请求处理器

fq:过滤查询。限制名称字段中必须含有 game

sort:排序 按价格从高到低

start,rows:分页:起始序号(0开始),行数

fl:需要返回的字段列表

df:默认搜索字段

wt:响应输出类型

dismax:高级功能设置

后续介绍Solr的其他知识。

文章来源:智云一二三科技

文章标题:Solr是什么,怎么使用Solr

文章地址:https://www.zhihuclub.com/196432.shtml

关于作者: 智云科技

热门文章

发表回复

您的电子邮箱地址不会被公开。

网站地图