码迷,mamicode.com
首页 > 其他好文 > 详细

Solr1.3的核心机制

时间:2015-06-09 19:37:01      阅读:99      评论:0      收藏:0      [点我收藏+]

标签:

内核调用机制

从图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中引入的新机制,这个机制在实际的应用中有很强的需求。例如,用户不希望普通文档(Word、PDF等)的索引数据与网页的索引数据混合,同时希望可以选择是查询普通文档还是查询网页,这时候索引分库很有必要。
Solr1.3的分库可以这样实现:在主目录下建立一个文件夹(或多个,代表库),该文件夹下建立名为config和data的文件夹,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)机制,也就是在缓存建立时采取何种方式来获得缓存中的数据,其中常用的一种是从已有的缓存中拷贝过来。
扫一扫超人学院微信二维码:技术分享

Solr1.3的核心机制

标签:

原文地址:http://www.cnblogs.com/CRXY/p/4564033.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!