Solr1.3的核心机制,Solr1.3核心机制


内核调用机制 从图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)机制,也就是在缓存建立时采取何种方式来获得缓存中的数据,其中常用的一种是从已有的缓存中拷贝过来。 更多精彩内容请关注:http://bbs.superwu.cn 关注超人学院微信二维码:

相关内容