百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术教程 > 正文

Solr是什么,怎么使用Solr solrj

suiw9 2024-10-31 16:07 24 浏览 0 评论

Solr

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

官网链接: https://lucene.apache.org/solr

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安装

下载地址:https://lucene.apache.org/solr/downloads.html

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]
  • Binary 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启动成功,浏览器输入:http://localhost:8983/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的其他知识。

相关推荐

俄罗斯的 HTTPS 也要被废了?(俄罗斯网站关闭)

发布该推文的ScottHelme是一名黑客,SecurityHeaders和ReportUri的创始人、Pluralsight作者、BBC常驻黑客。他表示,CAs现在似乎正在停止为俄罗斯域名颁发...

如何强制所有流量使用 HTTPS一网上用户

如何强制所有流量使用HTTPS一网上用户使用.htaccess强制流量到https的最常见方法可能是使用.htaccess重定向请求。.htaccess是一个简单的文本文件,简称为“.h...

https和http的区别(https和http有何区别)

“HTTPS和HTTP都是数据传输的应用层协议,区别在于HTTPS比HTTP安全”。区别在哪里,我们接着往下看:...

快码住!带你十分钟搞懂HTTP与HTTPS协议及请求的区别

什么是协议?网络协议是计算机之间为了实现网络通信从而达成的一种“约定”或“规则”,正是因为这个“规则”的存在,不同厂商的生产设备、及不同操作系统组成的计算机之间,才可以实现通信。简单来说,计算机与网络...

简述HTTPS工作原理(简述https原理,以及与http的区别)

https是在http协议的基础上加了一层SSL(由网景公司开发),加密由ssl实现,它的目的是为用户提供对网站服务器的身份认证(需要CA),以至于保护交换数据的隐私和完整性,原理如图示。1、客户端发...

21、HTTPS 有几次握手和挥手?HTTPS 的原理什么是(高薪 常问)

HTTPS是3次握手和4次挥手,和HTTP是一样的。HTTPS的原理...

一次安全可靠的通信——HTTPS原理

为什么HTTPS协议就比HTTP安全呢?一次安全可靠的通信应该包含什么东西呢,这篇文章我会尝试讲清楚这些细节。Alice与Bob的通信...

为什么有的网站没有使用https(为什么有的网站点不开)

有的网站没有使用HTTPS的原因可能涉及多个方面,以下是.com、.top域名的一些见解:服务器性能限制:HTTPS使用公钥加密和私钥解密技术,这要求服务器具备足够的计算能力来处理加解密操作。如果服务...

HTTPS是什么?加密原理和证书。SSL/TLS握手过程

秘钥的产生过程非对称加密...

图解HTTPS「转」(图解http 完整版 彩色版 pdf)

我们都知道HTTPS能够加密信息,以免敏感信息被第三方获取。所以很多银行网站或电子邮箱等等安全级别较高的服务都会采用HTTPS协议。...

HTTP 和 HTTPS 有何不同?一文带你全面了解

随着互联网时代的高速发展,Web服务器和客户端之间的安全通信需求也越来越高。HTTP和HTTPS是两种广泛使用的Web通信协议。本文将介绍HTTP和HTTPS的区别,并探讨为什么HTTPS已成为We...

HTTP与HTTPS的区别,详细介绍(http与https有什么区别)

HTTP与HTTPS介绍超文本传输协议HTTP协议被用于在Web浏览器和网站服务器之间传递信息,HTTP协议以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截取了Web浏览器和网站服务器之间的...

一文让你轻松掌握 HTTPS(https详解)

一文让你轻松掌握HTTPS原文作者:UC国际研发泽原写在最前:欢迎你来到“UC国际技术”公众号,我们将为大家提供与客户端、服务端、算法、测试、数据、前端等相关的高质量技术文章,不限于原创与翻译。...

如何在Spring Boot应用程序上启用HTTPS?

HTTPS是HTTP的安全版本,旨在提供传输层安全性(TLS)[安全套接字层(SSL)的后继产品],这是地址栏中的挂锁图标,用于在Web服务器和浏览器之间建立加密连接。HTTPS加密每个数据包以安全方...

一文彻底搞明白Http以及Https(http0)

早期以信息发布为主的Web1.0时代,HTTP已可以满足绝大部分需要。证书费用、服务器的计算资源都比较昂贵,作为HTTP安全扩展的HTTPS,通常只应用在登录、交易等少数环境中。但随着越来越多的重要...

取消回复欢迎 发表评论: