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 ...
随机推荐
- ubuntu终止进程的方法
在ubuntu中,终止一个进程或终止一个正在运行的程序,一般是通过 kill .killall.pkill.xkill 等进行. 先看两个例子: 例子一:结束某个程序,如Firefox 键入命令: ...
- Android API之android.provider.ContactsContract.Data
android.provider.ContactsContract.Data Constants for the data table, which contains data points tied ...
- Spring MVC request flow
1. When we enter a URL in the browser, the request comes to the dispatcher servlet.The dispatcher se ...
- CentOS安装配置Samba
介绍 Samba可以让我们在windows中访问linux系统中的文件,如果用来调试linux虚拟机中的代码会非常的方便 1.安装 yum -y update yum install samba sa ...
- Chrome禁用缓存
Chrome默认对JS和CSS等静态资源进行缓存,对HTML不启用缓存. 在开发阶段,我们想要更改之后马上看到效果,那就必须禁用JS和CSS. 快捷键是F12+F1,F12相当于打开dev-tool, ...
- Google Map 符号
符号 简介 如果您想在标记上使用基于矢量的图标,或者向多段线添加图像,便可使用符号. 标记支持使用光栅图像以及矢量图像.请参阅有关定制标记图标的文档. Symbol 是一种可显示在 Marker ...
- go 学习笔记(1)--package
引入包有以下几种方式: 1. 最简单的方式引入一个包的方式是直接引入包,例如: import "fmt" import "os" 2. 也可以通过下面的方式将包 ...
- 转 selenium 自动下载文件
#coding=utf-8from selenium import webdriver #实例化一个火狐配置文件fp = webdriver.FirefoxProfile() #设置各项参数,参数可以 ...
- 代码解说Android Scroller、VelocityTracker
在编写自己定义滑动控件时经常会用到Android触摸机制和Scroller及VelocityTracker.Android Touch系统简单介绍(二):实例具体解释onInterceptTouchE ...
- Xcode6:解决_NSURLAuthenticationMethodServerTrust异常问题
一.在使用Xcode6进行执行项目时.发现程序直接Crash了,控制台信息例如以下: dyld: Symbol not found: _NSURLAuthenticationMethodServerT ...