iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >solr基础知识简介
  • 758
分享到

solr基础知识简介

2024-04-02 19:04:59 758人浏览 安东尼
摘要

1.1 solr简介ApacheSolr作为搜索服务器,实现站内搜索具有封装性好和良好的扩展性,多门户社区多采用solr进行搜索引擎的建设。ApacheSolr 是一个开源的搜索服务器,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的文档;按查询删除将删除查询返回的所有文档。







您可能感兴趣的文档:

--结束END--

本文标题: solr基础知识简介

本文链接: https://www.lsjlt.com/news/44116.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Python基础知识(一)—简介
    一、Python 简介 Python定义:是一个免费、开源、跨平台、动态、面向对象的编程语言。 Python程序的执行(运行)方式有两种:交互式、文件式 交互式在命令行输入指令,回城即可得到结果。1.打开终端2.进行交互式:python3...
    99+
    2023-01-31
    基础知识 简介 Python
  • 计算机基础知识——DOS命令简介
    1、DOS简介 1.1、什么是DOS     DOS是英文Disk Operating System的缩写,意思是“磁盘操作系统”,它是一个单用户单任务操作系统,它直接操纵管理硬盘的文件,一般都是黑底白色文字的界面。     DOS的组成...
    99+
    2023-09-23
    服务器 运维
  • ES6基础知识介绍
    目录一、ECMAScript和JavaScript关系二、let命令三、const命令四、变量的解构赋值1、数组的解构赋值2、对象的解构赋值一、ECMAScript和JavaScri...
    99+
    2024-04-02
  • PHP基础知识介绍
    php中的整形数是有符号的,不能表示无符号整数,当整形数超出范围时,会自动从整形数转化成float数,可以用php_int_size常量来查看php整数类型所占字节,一般为4个字节,...
    99+
    2022-11-15
    PHP 基础知识
  • C# 最基础知识介绍--多态
    目录一、C# 多态性二、静态多态性三、函数重载四、C# 运算符重载1、运算符重载的实现 2、可重载和不可重载运算符五、动态多态性前言:👻🎄 学过编程...
    99+
    2024-04-02
  • sql注入基础知识的介绍
    本篇内容介绍了“sql注入基础知识的介绍”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!什么是SQL注入(S...
    99+
    2024-04-02
  • Go语言基础知识点介绍
    Go 语言教程 Go 是一个开源的编程语言,它能让构造简单、可靠且高效的软件变得容易。 Go是从2007年末由Robert Griesemer, Rob Pike, Ken Thom...
    99+
    2024-04-02
  • 基础知识:编程语言介绍、Python介绍
    2018年3月19日 今日学习内容: 1、编程语言的介绍 2、Python介绍 3、安装Python解释器(多版本共存) 4、运行Python解释器程序两种方式。(交互式与命令行式)(♥♥♥♥♥) 5、变量(♥♥♥♥♥) 6、数据类型的基...
    99+
    2023-01-31
    基础知识 编程语言 Python
  • python3基础知识
    字符串截取:利用下标进行截取py_str = 'python'len(py_str)py_str[:3] py_str + '123''python123'py_str * 3'pythonpythonpython' Str将数...
    99+
    2023-01-31
    基础知识
  • python基础知识
    1.注释   1.1.单行注释:以#开头,#右边的有所东西当做说明.   1.2.多行注释:'''   我是多行注释   '''   2.变量   2.1.为了充分的利用内存空间以及更有效率的管理内存,变量是有不同类型的     2.1....
    99+
    2023-01-30
    基础知识 python
  • Python 基础知识
    只是打印出 hello world 肯定是不够的,是吗?你会希望做得比这还要多——你想要输入一些内容,操纵它,然后从中得到一些输出出来的内容。我们可以在 Python 中通过使用变量与常量来实现这一目标,在本章中我们还会学习其它的一些概...
    99+
    2023-01-31
    基础知识 Python
  • 基础知识—3.12
    1、二叉树: 结点:所有的叶子。 叶子结点:最后一层的叶子数。 性质1:二叉树第i层上的结点数目最多为 2{i-1} (i≥1)。性质2:深度为k的二叉树至多有2{k}-1个结点(k≥1)。性质3:包含n个结点的二叉树的高度至少为log2...
    99+
    2023-01-30
    基础知识
  • Python 函数编程的基础知识介绍
    函数基础知识掌握自定义函数的基本语法规范和调用方法及掌握函数的各种参数的使用及调用规则。1、Python函数函数( Function )是组织好的,可重复使用的,用来实现单一, 或相关联功能的代码段。函数能提高应用的模块性 ,和代码的重复利...
    99+
    2023-05-14
    Python 函数编程 自定义函数
  • Linux信号机制的基础知识介绍
    本篇内容介绍了“Linux信号机制的基础知识介绍”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Linux进程基础一文中已经提到,Linux以...
    99+
    2023-06-13
  • Android基础知识及线性布局介绍
    目录1.常见控件的基本属性1.1控件的可见性1.2控件的外边距1.3控件的内边距2.线性布局(Linear Layout)2.1示例:2.2微信界面实战3.总结1.常见控件的基本属性...
    99+
    2024-04-02
  • mysql基础知识-3
    一、mysql修改用户密码方法:    方法一:mysqladmin -u username -h host -p password 'new_password';    方法二:mysql>set password for 'use...
    99+
    2023-01-31
    基础知识 mysql
  • Linux基础知识3
     Linux 命令的语法格式COMMAND options arguments 命令可分为:命令、应用程序、脚本文件三类命令按类型分为:内部命令:即集成在系统内核中的命令外部命令:独立的可执行程序,程序名即为命令名区分内部命令或外部命令可使...
    99+
    2023-01-31
    基础知识 Linux
  • RabbitMQ的基础知识
    目录RabbitMQ1.对MQ的介绍2.RabbitMQ的六种模式 及工作原理3.hello world队列4.工作队列模式5.消息应答机制自动应答手动应答消息自动进行重新入队6.R...
    99+
    2024-04-02
  • Kubernetes(K8S)基础知识
    目录Kubernetes 是什么Kubernetes 集群的组成Kubernetes 结构组件Master 节点kube-apiserveretcdkube-schedulerkub...
    99+
    2024-04-02
  • 【MySQL】基础知识(二)
    MySQL基础知识(二) 文章目录 MySQL基础知识(二)01 表操作1.1 创建表1.2 查看所有表1.3 查看指定表的结构1.4 删除表练习 02 CURD2.1 新增2.1.1 ...
    99+
    2023-09-06
    mysql adb android
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作