博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Solr1.3的核心机制
阅读量:6149 次
发布时间:2019-06-21

本文共 1354 字,大约阅读时间需要 4 分钟。

  hot3.png

内核调用机制

从图3-3可以看出Solr1.3服务器包含一个实现基本功能的核心API,也可称之为内核。所有功能的实现都通过对内核API的调用来实现。Solr1.3的内核API提供的接口具有高内聚低耦合的特点。低耦合主要体现在仅仅通过一个API函数(execute)就可以实现包括信息查询和索引管理的功能。execute函数调用格式如图3-3所示。

3-3 Solr内核API调用格式

虽然对于信息查询和索引管理(包括索引添加,更新和删除)都使用相同的API调用,但是API参数却不同。对于查询请求SolrRequestHandler为负责信息查询的Handler,SolrQueryRequest为信息查询参数, SolrQueryResponse为搜索结果。而对于索引管理SolrRequestHandler为专门负责索引管理的Handler,SolrQueryRequest为索引更新请求,SolrQueryResponse为索引管理操作的结果。

内核API的低耦合结构使得对外具有简约,清晰的逻辑结构;execute方法参数子类型的多样性又使得该方法具有强大的功能。

分库机制

分库机制(也叫多核心机制)Solr1.3中引入的新机制,这个机制在实际的应用中有很强的需求。例如,用户不希望普通文档(WordPDF)的索引数据与网页的索引数据混合,同时希望可以选择是查询普通文档还是查询网页,这时候索引分库很有必要。

Solr1.3的分库可以这样实现:在主目录下建立一个文件夹(或多个,代表库),该文件夹下建立名为configdata的文件夹,config文件夹下存放自定义的schema.xml文件和solrconfig.xml文件,data文件夹下存储索引数据;在主目录下的solr.xml中将上面建立的库添加进来,具体格式见3.3.2小节。

Solr1.3的各个库对应服务器的各个核心,各个核心之间是相互独立的,每个核心可以具有独立的文档模式和系统属性。

缓存机制

搜索引擎的响应速度是搜索引擎性能的重要衡量指标。由于索引数据是保存在硬盘上的,硬盘作为外围设备,访问速度比较慢;同时由于查询器从索引数据库中获得相应的查询结果,也会花一定得时间和资源进行一些计算;所以查询的速度存在一定的瓶颈。多个用户的查询中可能存在重复查询的情况,这提供了一个机会让我们将一些查询结果缓存起来,下次用户再查询时就可以从缓存中快速地获得查询结果。

Solr提供了强大的缓存机制来提高性能。表3-15列出了Solr提供的各种缓存。

3-15 Solr中的缓存

  

filterCache

  

文档ID的无序集,可以实现在一定得文档内进行精确查询

queryResultCache

文档ID的有序表,根据一定得策略排序的某个查询的结果文档

documentCache

存储从磁盘中获得的Document的对象

User Caches

自定义缓存

Solr还提供了缓存“预热”(warm)机制,也就是在缓存建立时采取何种方式来获得缓存中的数据,其中常用的一种是从已有的缓存中拷贝过来。

更多精彩内容请关注:

关注超人学院微信二维码:

转载于:https://my.oschina.net/crxy/blog/464696

你可能感兴趣的文章
Shell基础之-正则表达式
查看>>
JavaScript异步之Generator、async、await
查看>>
讲讲吸顶效果与react-sticky
查看>>
c++面向对象的一些问题1 0
查看>>
直播视频流技术名词
查看>>
IOC —— AOP
查看>>
比特币现金将出新招,推动比特币现金使用
查看>>
数据库的这些性能优化,你做了吗?
查看>>
某大型网站迁移总结(完结)
查看>>
部署SSL证书后,网页内容造成页面错误提示的处理办法
查看>>
MS SQLSERVER通用存储过程分页
查看>>
60.使用Azure AI 自定义视觉服务实现物品识别Demo
查看>>
Oracle 冷备份
查看>>
jq漂亮实用的select,select选中后,显示对应内容
查看>>
C 函数sscanf()的用法
查看>>
python模块之hashlib: md5和sha算法
查看>>
解决ros建***能登录不能访问内网远程桌面的问题
查看>>
pfsense锁住自己
查看>>
vsftpd 相关总结
查看>>
售前工程师的成长---一个老员工的经验之谈
查看>>