LuceneIndexFileDeleter会保留初始的commit

给实时索引添加了merge策略,持续更新时发现有做merge,但索引目录中的段数远远大于RealTimeIndexWriter中的段数,就是有些merge的段应该删除,目录中没有删除。而关闭searcher之后索引目录就变小了,段数也对了。

定位之后发现IndexFileDeleter构造函数中有个checkpoint(segmentInfos,false),false会将第一个commit加入lastFiles,直到close时才做删除。

由于实时索引的deleter并非lucene自带的deleter,会给人误解以为索引变得巨大,我把那个false改为true就正常了。

时间: 2024-10-18 00:53:24

LuceneIndexFileDeleter会保留初始的commit的相关文章

用遗传算法解八皇后问题

此算法收敛速度还可以,基本在1万代之内就能找到解 主程序 clear; clc; %% %八皇后问题,8X8的棋盘上,放置8个皇后,使之两两都不能攻击 %初始的状态,随机在棋盘上放置8个皇后,每列放一个 n = 8; %8皇后 %% %用遗传算法计算 %先随机获得几个个体,形成一个种群 %这个种群有10个个体 No_of_people = 10; people = randi(n,[No_of_people,n]); %计算每个初始种群的h值 people_h = ones(No_of_peop

R in action读书笔记(19)第十四章 主成分和因子分析

第十四章:主成分和因子分析 本章内容 主成分分析 探索性因子分析 其他潜变量模型 主成分分析(PCA)是一种数据降维技巧,它能将大量相关变量转化为一组很少的不相关变量,这些无关变量称为主成分.探索性因子分析(EFA)是一系列用来发现一组变量的潜在结构的方法.它通过寻找一组更小的.潜在的或隐藏的结构来解释已观测到的.显式的变量间的关系. PCA与EFA模型间的区别 主成分(PC1和PC2)是观测变量(X1到X5)的线性组合.形成线性组合的权重都是通过最大化各主成分所解释的方差来获得,同时还要保证个

基础:从概念理解Lucene的Index(索引)文档模型

转:http://blog.csdn.net/duck_genuine/article/details/6053430 目录(?)[+] Lucene主要有两种文档模型:Document和Field,一个Document可能包含若干个Field. 每一个Field有不同的策略: 1.被索引 or not,将该字段(Field)经过分析(Analyisi)后,加入索引中,并不是原文 . 2.如果被索引,可选择是否保存“term vector”(向量),用于相似检索. 3.可选择是否存储(store

git add

git add git add命令把工作目录下面的有修改的文件添加的index(staging)里面去. git add告诉Git你想在下次commit的时候把什么文件包含进去. 但是, git add没有真正的对仓储有什么大的影响--在commit之前修改没有真正的被记录下来. 在add之前, 可以使用git status来查看工作目录和index区域的状态. 用法 git add <file> 把文件的所有修改加入到index(staging)中, 为了下次commit. git add

Activity和Task

1.Task 每个应用程序对应每个Task,Task里面以栈的形式存储多个Activity. 不同应用程序的切换(如按下home键,去启动另一个app,该app显示在前台,之前app就被放置在后台)其实就是不同Task的前后台切换. 按“back”键其实就是将当前Task(应用程序)顶部的Activity弹出,将下一个Activity显示出来 2.Activity(不同Task下,相同Task下)和Task Intent中还定义了flag属性(4个常量): FLAG_ACTIVITY_NEW_T

细说GIT分布式版本控制器

一.Git介绍 Git是目前世界上最先进的分布式版本控制器.Svn CVS 版本控制器:就是用来追溯自己书写的代码的记录信息.好处:可以非常方便的记录何时何地何人操作了哪些代码. 什么是分布式版本控制器? 集中式:对于集中式的版本控制器,需要搭建一个中央服务器,然后在这个中央服务器里面作为代码的仓库. 分布式:就是每个用户的电脑都是一个独立的仓库,可以记录代码的变化,即使不联网,完全也可以自己独立开发. 二.Git安装 https://git-for-windows.github.io/ 安装完

do{...}while(0)的意义和用法(转载)

linux内核和其他一些开源的代码中,经常会遇到这样的代码: do{ ... }while(0) 这样的代码一看就不是一个循环,do..while表面上在这里一点意义都没有,那么为什么要这么用呢? 实际上,do{...}while(0)的作用远大于美化你的代码.查了些资料,总结起来这样写主要有以下几点好处: 1.辅助定义复杂的宏,避免引用的时候出错: 举例来说,假设你需要定义这样一个宏: #define DOSOMETHING() foo1(); foo2(); 这个宏的本意是,当调用DOSOM

PE文件结构详解

1.定位标准PE头 DOS Stub长度不固定,所以DOS头不是一个固定大小的数据结构.DOS头位于PE的起始位置,通过DOS头去定位后面标准PE头的位置就是通过字段e_lfanew. e_lfanew字段的值是一个相对偏移量,绝对定位时需要加上DOS MZ头的基地址. 也就是PE头的绝对位置是: PE_start = DOS MZ 基地址+IMAGE_DOS_HEADER.e_lfanew 2.PE文件结构 在32位系统下,最重要的部分是PE头和PE数据区. 32位系统下的PE文件被划分为:D

SVN迁移及备份的方法【转】

转自: http://spiritfrog.iteye.com/blog/448578 + http://magnet2008.iteye.com/blog/586578 备份策略 ============== svn备份一般采用三种方式: 1)svnadmin dump 2)svnadmin hotcopy 3)svnsync. 注意,svn备份不宜采用普通的文件拷贝方式(除非你备份的时候将库暂停),如copy命令.rsync命令. 笔者曾经用 rsync命令来做增量和全量备份,在季度备份检查