Solr学习之五
一、段管理
段是一个自包含,仅可读的solr的索引的子集。一旦一个段被刷新到持久存储后,它将不会改变。当添加新文档到你的索引时候,它们被写入到新的段中。因此,在你的索引中,有很多激活的段。一次查询必须从所有的段中去读数据,以便获得一个完成的结果集。从某种意义上说,有许多小的段将会影响你的查询性能。合并许多小段到少数的大段的过程一般被称为段的合并。
二、优化索引
优化索引是一个强制Lucene去合并存在的段到一定数量的大段的操作,这一定数量默认值为1.
举个例子,一个具有32个段的索引,优化后,只有一个段。因此优化是个需要耗费cpu、内存、和磁盘空间的昂贵操作,特别是对于大索引而言。一个大索引的完全优化,可能花费几个小时也不稀奇。
Solr社区对于是否优化索引的建议是更改你的段合并侧率。一个优化过的索引并不意味这慢的查询会突然变快。相反有时候不优化索引,查询性能仍然是可以接受的。
索引合并配置:
| 配置项 | 作用 |
| ramBufferSizeMB |
在文档被刷新到目录之前的缓存大小的最大内存设置;默认是100MB。增加这个值将会 缓存更多的文档在内存中,从而在索引的时候减少磁盘的IO。 |
| maxBufferedDocs | 在文档被刷新到目录之前,缓存的最大文档数量;默认值为1000个文档。 |
| mergePolicy | 控制Lucene执行段合并,比如决定多少个段合并为一个段。默认为TieredMergePolicy。 |
| mergeFactor | 控制一次合并多少个段。默认为10.最优设置,取决于你的平均文档大小,可用的内存和渴望的索引的吞吐量。 |
| mergeScheduler | 控制何时段合并运行。默认是在后台并发执行的,用的配置为:concurrentMergeScheduler |
虽然这些配置在solrconfig.xml被注释掉,但是,后台段的合并在你的索引中仍然是可用的。在后台执行的。我建议你避免优化,避免更改段合并的设置,除非建索引的吞吐量成为你程序的问题的时候。
删除处理
在段被刷新到磁盘之后就是不可以改变的。删除操作,并不会从存在的段中删除已经存在的文档。
删除的文档并不会从你索引中删除,直到包含删除的段被合并。在底层,Lucene通过一个单独的数据结构来跟踪段。在大多数情况下,你不用担心合并进程。
Solr学习之五的更多相关文章
- Solr学习总结(六)SolrNet的高级用法(复杂查询,分页,高亮,Facet查询)
上一篇,讲到了SolrNet的基本用法及CURD,这个算是SolrNet 的入门知识介绍吧,昨天写完之后,有朋友评论说,这些感觉都被写烂了.没错,这些基本的用法,在网上百度,资料肯定一大堆,有一些写的 ...
- Solr学习总结(五)SolrNet的基本用法及CURD
上一篇已经讲到了Solr 查询的相关的参数.这里在讲讲C#是如何通过客户端请求和接受solr服务器的数据, 这里推荐使用SolrNet,主要是:SolrNet使用非常方便,而且用户众多,一直都在更新, ...
- Solr学习笔记之3、Solr dataimport - 从SQLServer导入数据建立索引
Solr学习笔记之3.Solr导入SQLServer数据建立索引 一.下载MSSQLServer的JDBC驱动 下载:Microsoft JDBC Driver 4.0 for SQL Server ...
- Solr学习笔记之2、集成IK中文分词器
Solr学习笔记之2.集成IK中文分词器 一.下载IK中文分词器 IK中文分词器 此文IK版本:IK Analyer 2012-FF hotfix 1 完整分发包 二.在Solr中集成IK中文分词器 ...
- Solr学习笔记之1、环境搭建
Solr学习笔记之1.环境搭建 一.下载相关安装包 1.JDK 2.Tomcat 3.Solr 此文所用软件包版本如下: 操作系统:Win7 64位 JDK:jdk-7u25-windows-i586 ...
- Solr学习(2) Solr4.2.0+IK Analyzer 2012
Solr学习(二) Solr4.2.0+IK Analyzer 2012 开场白: 本章简单讲述如何在solr中配置著名的 IK Analyzer 分词器. 本章建立在 Solr学习(一) 基础上进 ...
- Solr学习笔记之5、Component(组件)与Handler(处理器)学习
Solr学习笔记之5.Component(组件)与Handler(处理器)学习 一.搜索篇 拼写检查(spellCheck) 作用:用来检查用户输入的检索内容是否存在,如果不存在则给它提示出相近或相似 ...
- Solr学习笔记之4、Solr配置文件简介
Solr学习笔记之4.Solr配置文件简介 摘自<Solr in Action>. 1. solr.xml – Defines one or more cores per Solr ser ...
- Solr学习之二-Solr基础知识
一 基本说明 简单来说Solr是基于Lucene的高性能的,开源的Java企业搜索服务器.Solr可以看作一个Web app,运行在tomcat或Jetty这类HTTP服务器上, 底层是一个基于Luc ...
随机推荐
- Hive之简单查询不启用MapReduce
假设你想查询某个表的某一列.Hive默认是会启用MapReduce Job来完毕这个任务,例如以下: 01 hive> SELECT id, money FROM m limit 10; 02 ...
- 一个简单的knockout.js 和easyui的绑定
<!DOCTYPE html><html><head><meta charset="UTF-8"><title>Basi ...
- python之函数用法vars()
# -*- coding: utf-8 -*- #python 27 #xiaodeng #python之函数用法vars() #vars() #说明:返回对象object的属性和属性值的字典对象 ' ...
- HTTP协议详解之User Agent篇
•User Agent:用户代理 指浏览器他的信息包括硬件平台.系统软件.应用软件和用户个人偏好.用户代理不仅仅指浏览器,还包括搜索引擎. •为什么所有浏览器的User Agent都带有Mozilla ...
- 赵雅智_android多线程下载带进度条
progressBar说明 在某些操作的进度中的可视指示器,为用户呈现操作的进度,还它有一个次要的进度条,用来显示中间进度,如在流媒体播放的缓冲区的进度. 一个进度条也可不确定其进度.在不确定模式下, ...
- PHP生成缩略图、加水印
<?php class ThumbWaterImages{ /** * 生成缩略图/加水印 * classname ThumbWaterImages * datetime:2015-1-15 * ...
- A brief introduction to Hashing and Rehashing
偶然发现一篇哈希的综述文章,虽然是1996年写的,里面的一些评测在今天看来早已经小case了.但是今天仍然极具参考价值. 地址:http://www.drdobbs.com/database/hash ...
- HDUOJ---1867 A + B for you again
A + B for you again Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Othe ...
- 把Android源代码加入SDK
各位调试Android程序的时候遇到“source not found”错误应该很抓狂吧,Goolge在发布SDK时没有把源代码包含进去着实有点让人费解,对很多人来说Git无疑是个生涩的东西,而 fr ...
- 转:C#实现office文档转换为PDF或xps的一些方法
代码支持任意office格式 需要安装office 2007 还有一个office2007的插件OfficeSaveAsPDFandXPS 下载地址 [url]http://www.microsoft ...