solr基础知识简介

1.1 solr简介

ApacheSolr作为搜索服务器,实现站内搜索具有封装性好和良好的扩展性,多门户社区多采用solr进行搜索引擎的建设。ApacheSolr 是一个开源的搜索服务器,Solr使用 Java语言开发,主要基于 HTTP 和Apache Lucene 实现。

1.2 solr实现原理

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

1.3 solr特性

定制Solr 索引的实现方法很简单,用 POST方法向 Solr服务器发送一个描述所有 Field及其内容的 XML文档就可以了。定制搜索的时候只需要发送 HTTPGET请求即可,然后对 Solr 返回的信息进行重新布局,以产生利于用户理解的页面内容布局。Solr1.3版本开始支持从数据库(通过 JDBC)、RSS提要、Web页面和文件中导入数据,但是不直接支持从二进制文件格式中提取内容,比如 MSOffice、AdobePDF或其他专有格式。更重要的是,Solr 创建的索引与 Lucene搜索引擎库完全兼容。通过对 Solr进行适当的配置,某些情况下可能需要进行编码,Solr可以阅读和使用构建到其他 Lucene应用程序中的索引。此外,很多 Lucene工具(如Nutch、Luke)也可以使用 Solr创建的索引。

Solr的特性包括:

1.  高级的全文搜索功能

2.  专为高通量的网络流量进行的优化

3.  基于开放接口(XML和HTTP)的标准

4.  综合的HTML管理界面

5.  可伸缩性-能够有效地复制到另外一个Solr搜索服务器

6.  使用XML配置达到灵活性和适配性

7.  可扩展的插件体系

1.4 solr使用Lucene并且进行了扩展

1.  一个真正的拥有动态域(DynamicField)和唯一键(UniqueKey)的数据模式(DataSchema)

2.  对Lucene查询语言的强大扩展

3.  支持对结果进行动态的分组和过滤

4.  高级的,可配置的文本分析

5.  高度可配置和可扩展的缓存机制

6.  性能优化

7.  支持通过XML进行外部配置

8.  拥有一个管理界面

9.  可监控的日志

10.  支持高速增量式更新(Fastincremental Updates)和快照发布(SnapshotDistribution)

1.5 Schema(模式)

1.  定义域类型和文档的域

2.  能够驱动智能处理

3.  声明式的Lucene分析器规范

4.  动态域能够随时增加域

5.  拷贝域功能允许对一个域进行多种方式的索引,或者将多个域联合成一个可搜索的域

6.  显式类型能够减少对域类型的猜测

7.  能够使用外部的基于文件的终止词列表,同义词列表和保护词列表的配置

1.6 查询

1.  拥有可配置响应格式(XML/XSLT,JSON,Python,Ruby)的HTTP接口

2.  高亮的上下文搜索结果

3.  基于域值和显式查询的片段式搜索(FacetedSearch)

4.  对查询语言增加了排序规范

5.  常量的打分范围(Constantscoring range)和前缀式查询-没有idf,coord,或者lengthNorm因子,对查询匹配的词没有数量限制

6.  函数查询(FunctionQuery)-通过关于一个域的数值或顺序的函数对打分进行影响

7.  性能优化

1.7 核心

1.  可插拔的查询句柄(QueryHandler)和可扩展的XML数据格式

2.  使用唯一键的域能够增强文档唯一性

3.  能够高效地进行批量更新和删除

4.  用户可配置的文档索引变化触发器(命令)

5.  并发控制的搜索器

6.  能够正确处理数字类型,从而能够进行排序和范围搜索

7.  能够控制缺失排序域的文档

8.  支持搜索结果的动态分组

1.8  缓存

1.  可配置的查询结果,过滤器,和文档缓存实例

2.  可插拔的缓存实现

3.  后台缓存热启:当一个新的搜索器被打开时,可配置的搜索将它热启,避免第一个结果慢下来,当热启时,当前搜索器处理目前的请求。

4.  后台自动热启:当前搜索器缓存中最常访问的项目在新的搜索器中再次生成,能够在索引器和搜索器变化的时候高速缓存常查询的结果

5.  快速和小的过滤器实现

6.  支持自动热启的用户级别的缓存

1.9 复制

1.  能够将使用rsync传输时改变的索引部分有效的发布

2.  使用拉策略(PullStrategy)来简化增加搜索器

3.  可配置的发布间隔能够允许对时间线和缓存使用进行权衡选择

1.10 管理接口

1.  能够对缓存使用,更新和查询进行综合统计

2.  文本分析调试器,能够显示每个分析器每个阶段的结果

3.  基于WEB的查询和调试输出:解析查询输出,Lucene的explain方法细节,能够解释为何某个文档打分低,被排除在结果中等等

1.11 索引

可以向Solr索引servlet传递四个不同的索引请求:

1)     add/update允许向Solr添加文档或更新文档。直到提交后才能搜索到这些添加和更新。

2)     commit 告诉Solr,应该使上次提交以来所做的所有更改都可以搜索到。

3)     optimize 重构 Lucene 的文件以改进搜索性能。索引完成后执行一下优化通常比较好。如果更新比较频繁,则应该在使用率较低的时候安排优化。一个索引无需优化也可以正常地运行。优化是一个耗时较多的过程。

4)     delete 可以通过 id 或查询来指定。按 id删除将删除具有指定 id的文档;按查询删除将删除查询返回的所有文档。

时间: 2024-11-06 06:11:55

solr基础知识简介的相关文章

PL/SQL 基础知识简介

1.PL/SQL代码块 PL/SQL 代码块是指令的集合,支持所有的DML,NDS,DBMS_SQL,DDL. :DML 是数据操纵语言(Data Manipulation Language)包括,Insert ,update,delete : DDL是数据定义语言(Data Definition Language ),包括,Alter,create,drop,truncate,Grant,revoke : NDS本地动态SQL(Native Dynamic SQL) 2.PL/SQL代码块结构

SpringCloud(1) 架构演进和基础知识简介

一.传统架构演进到分布式架构 简介:讲解单机应用和分布式应用架构演进基础知识 (画图) 高可用 LVS+keepalive 1.单体应用:开发速度慢.启动时间长.依赖庞大.等等 2.微服务:易开发.理解和维护.独立的部署和启动等等 不足:分布式系统(分布式事务问题).需要管理多个服务(服务治理) 二.微服务基础知识简介 微服务核心知识 :网关.服务发现注册.配置中心.链路追踪.负载均衡器.熔断 1.网关:路由转发 + 过滤器 /api/v1/pruduct/       商品服务 /api/v1

音频开发基础知识简介

在现实生活中,音频(audio)主要用在两大场景中:语音(voice)和音乐(music).语音主要用于沟通通信,如打电话,现在由于语音识别的发展,人机语音交互也是语音的一个应用,目前正在风口上,好多大厂都推出了智能音箱.音乐主要用于欣赏,如音乐播放. 下面简单介绍音频的基础知识: 采样和采样频率:现在是数字时代,在音频处理时要先把音频的模拟信号变成数字信号,这叫A/D转换.要把音频的模拟信号变成数字信号,就需要采样,或者叫抽样.当要把音频播放出来时则需要把数字信号转换成模拟信号,这叫D/A转换

Solr学习之二-Solr基础知识

一 基本说明 简单来说Solr是基于Lucene的高性能的,开源的Java企业搜索服务器.Solr可以看作一个Web app,运行在tomcat或Jetty这类HTTP服务器上, 底层是一个基于Lucene的搜索引擎,还附加一个Solr的基本管理界面.Solr提供HTTP服务,通过Get方法进行查询,通过Post方法进行索引的添加/删除管理. 一般来说Solr的查询时通过Get方法请求到HTTP服务器的solr这个app下的/select对应的servlet上去,而添加等操作时通过POST方法到

二、MongoDB的基础知识简介

1.文档.集合和数据库 a).文档:因为MongoDB是面向文档的数据库,那么可想而知文档是它的基本单元,相当于关系型数据库中的行! Ⅰ.它是由键值对组成的一个有序集:注:键不能为空且是字符串类型的. Ⅱ.它不仅区分大小写,而且还区分数据类型: Ⅲ..和$符号具有特殊意义,需要在特定环境中使用: b).集合:同样的,多个文档汇聚在一起就是一个集合,但是这些文档可以是不同的结构模式,组合在一起就相当于关系型数据库中的表! Ⅰ.同样命名不能为空,不能以system开头,且不能使用保留字符$: Ⅱ.动

Solr学习01:Solr基础知识

一.什么是solr 首先,要了解下Solr是什么,以下是官方的描述. Solr是一个来自Apache Lucence项目,是一个热门开源的企业级搜索平台.为目前世界上相当多的大型互联网站点提供搜索和导航服务. [http://wiki.apache.org/solr/] Solr使用Java语言写的,作为一个独立的全文检索服务器项目,可运行在如Jetty或Tomcat等servlet容器中.(Solr提供了层面搜索(就是统计).命中醒目显示并且支持多种输出格式(包括XML/XSLT 和JSON等

Solr基础知识三(整合SSM)

前两篇讲了solr安装和导入数据,这篇讲如何整合到SSM中. 一.整合SSM 1.1 引入依赖 1.2 初始化solr 1.3 写service 1.4 写控制层 1.5 查询 二.IK分词器 2.1.添加jar包 下载地址:https://search.maven.org/search?q=com.github.magese 源码:https://github.com/magese/ik-analyzer-solr 2.2 添加配置文件(默认) 2.3 添加字段类型 2.4 重新导入数据 原文

USB2.0学习笔记连载(二):USB基础知识简介

  USB接口分为USB A型.USB B型.USBmini型.USBmicro型.USB3.0其中每种都有相应的插座和插头. 图1 图2 上图是USBA型接口,图1为插座,图2为插头.插座指向下行方向,插头指向上行方向. USB中一般常用有4根线,两边两根线一般为VBUS(5V的接入或接出线,对应上图中的1引脚)和GND(对应上图中的4引脚).中间两根为D+(对应上图中的3引脚),D-(对应上图中的2引脚),还有外加一个屏蔽层. 图3 图4 USB B型所对应的各信号和USB A型一致.在各种

LoRaWAN与LoRa的基础知识简介 教你看懂两者的区别

在物联网技术快速发展的今天,NB-IoT.LoRa.SigFox等技术名词经常进入我们的视野中,对于刚刚接触物联网领域的人来说,在一大堆名词面前可能会混淆.面对类似于LoRa和LoRaWAN这样容易混淆的名词,其实只要系统梳理一下就可以发现其中的区别.今天我们就来看看LoRaWAN与LoRa两者的区别: 总体而言,LoRa仅包含链路层协议,并且非常适用于节点间的P2P通信:同时,LoRa模块也比LoRaWAN便宜一点: LoRaWAN也包含网络层,因此可以将信息发送到任何已连接到云平台的基站.只