如何提高Lucene构建索引的速度】的更多相关文章

如何提高Lucene构建索引的速度 hans(汉斯) 2013-01-27 10:12 对于Lucene>=2.3:IndexWriter可以自行根据内存使用来释放缓存.调用writer.setRAMBufferSizeMB()方法设置缓存尺寸.确保你没有任何的遗留代码调用setMaxBufferedDocs方法,因为写入器可以根据两种情况一起释放缓存(哪个更早发生).使用你可以提供的全部内存.在释放缓存之前使用更多的内存,意味着Lucene写入更大的段,意味着延迟合并的发生.LUCENE-84…
加速 lucene 索引建立速度 ImproveIndexingSpeed…
在搜索文档内容之前要做的事情就是对从各种不同来源(网页,数据库,电子邮件等)的文档进行索引,索引的过程就是对内容进行提取,规范化(通过对内容进行建模来实现),然后存储. 在索引的过程中有几个基本的概念,根据我自己的理解大概写一下: 文档(Document): 文档在索引和搜索的时候都会用到,是索引和搜索的基本单位(类似于关系数据库关系表中的记录),若我们对网页内容进行索引和搜索,则从互联网上爬下来的每一个网页最终都会经过分析,提取出其中有意义的部分(比如网页标题,URL,包含的关键字,发布日期等…
一.实验名称:构建索引 二.实验日期:2013/9/21 三.实验目的: 1)        能理解Lucene中的Document-Field结构的数据建模过程: 2)        能编针对特定数据生成索引文件. 四.实验用的仪器和材料: MyEclipse 10,JDK 五.实验的步骤和方法: 题目一:在指定目录生成表示3本书的索引,要求建立3个document分别存放书名数据.把生成的索引文件截好图(复合索引与一般索引各生成一次) 图1:一般索引的截图 图2:复合索引的截图 题目二:修改…
上一篇博文中已经对全文检索有了一定的了解,这篇文章主要来总结一下全文检索的第一步:构建索引.其实上一篇博文中的示例程序已经对构建索引写了一段程序了,而且那个程序还是挺完善的.不过从知识点的完整性来考虑,我想从Lucene的添加文档.删除文档.修改文档以及文档域加权四个部分来展开对构建索引的总结,也便于我后期的查看.会重点分析一下删除文档(因为有两中方式)和文档域加权这(实际中会用到比较多)两个部分. 1. 准备阶段 新建一个maven工程,pom.xml如下: <project xmlns=&quo…
Lucene的索引里面存了些什么,如何存放的,也即Lucene的索引文件格式,是读懂Lucene源代码的一把钥匙. 当我们真正进入到Lucene源代码之中的时候,我们会发现: Lucene的索引过程,就是按照全文检索的基本过程,将倒排表写成此文件格式的过程. Lucene的搜索过程,就是按照此文件格式将索引进去的信息读出来,然后计算每篇文档打分(score)的过程. 本文详细解读了Apache Lucene - Index File Formats(http://lucene.apache.or…
Solr4.8.0源码分析(10)之Lucene的索引文件(3) 1. .si文件 .si文件存储了段的元数据,主要涉及SegmentInfoFormat.java和Segmentinfo.java这两个文件.由于本文介绍的Solr4.8.0,所以对应的是SegmentInfoFormat的子类Lucene46SegmentInfoFormat. 首先来看下.si文件的格式 头部(header) 版本(SegVersion) doc个数(SegSize) 是否符合文档格式(IsCompoundF…
Solr4.8.0源码分析(8)之Lucene的索引文件(1) 题记:最近有幸看到觉先大神的Lucene的博客,感觉自己之前学习的以及工作的太为肤浅,所以决定先跟随觉先大神的博客学习下Lucene的原理.由于觉先大神主要介绍的是Lucene3.X系的,那我就根据源码以及结合觉先大神的来学习下4.X系的.内容可能会有些变化,且加入下我个人的理解. http://www.cnblogs.com/forfuture1978/archive/2009/12/14/1623597.html 一. 基本类型…
Lucene的索引里面存了些什么,如何存放的,也即Lucene的索引文件格式,是读懂Lucene源代码的一把钥匙. 当我们真正进入到Lucene源代码之中的时候,我们会发现: Lucene的索引过程,就是按照全文检索的基本过程,将倒排表写成此文件格式的过程. Lucene的搜索过程,就是按照此文件格式将索引进去的信息读出来,然后计算每篇文档打分(score)的过程. 本文详细解读了Apache Lucene - Index File Formats(http://lucene.apache.or…
内存索引库 特点 在内存中开辟一块空间,专门为索引库存放.这样有以下几个特征: 1)    因为索引库在内存中,所以访问速度更快. 2)    在程序退出时,索引库中的文件也相应的消失了. 3)    如果索引库比较大,必须得保证足够多的内存空间. 编码 在cn.hqu.directory 下新建:DirectoryTest /** * 1.能不能设置很多个索引库 *    可以设置很多个索引库 * 2.索引库能不能合并起来 *    如果是内存索引库 *      Directory ramD…
前言:目前自己在做使用Lucene.net和PanGu分词实现全文检索的工作,不过自己是把别人做好的项目进行迁移.因为项目整体要迁移到ASP.NET Core 2.0版本,而Lucene使用的版本是3.6.0 ,PanGu分词也是对应Lucene3.6.0版本的.不过好在Lucene.net 已经有了Core 2.0版本(4.8.0 bate版),而PanGu分词,目前有人正在做,貌似已经做完,只是还没有测试~,Lucene升级的改变我都会加粗表示. Lucene.net 4.8.0 https…
本文转载自:http://www.cnblogs.com/forfuture1978/archive/2009/12/14/1623597.html Lucene的索引里面存了些什么,如何存放的,也即Lucene的索引文件格式,是读懂Lucene源代码的一把钥匙. 当我们真正进入到Lucene源代码之中的时候,我们会发现: Lucene的索引过程,就是按照全文检索的基本过程,将倒排表写成此文件格式的过程. Lucene的搜索过程,就是按照此文件格式将索引进去的信息读出来,然后计算每篇文档打分(s…
Lucene的索引里面存了些什么,如何存放的,也即Lucene的索引文件格式,是读懂Lucene源代码的一把钥匙. 当我们真正进入到Lucene源代码之中的时候,我们会发现: Lucene的索引过程,就是按照全文检索的基本过程,将倒排表写成此文件格式的过程. Lucene的搜索过程,就是按照此文件格式将索引进去的信息读出来,然后计算每篇文档打分(score)的过程. 本文详细解读了Apache Lucene - Index File Formats(http://lucene.apache.or…
lucene的实时搜索可以分成:实时和近实时的搜索. 实时只能依靠内存了. 近实时可以用lucene中提供org.apache.lucene.index.DirectoryReader.open(IndexWriter writer, boolean applyAllDeletes) throws IOException,可以在不十分影响性能的前提下,实现近实时的效果(比如每1s打开一次搜索,这类似于solr中的实现). 一.实时搜索 lucene一般有ramdirectory和fsddirec…
Solr4.8.0源码分析(12)之Lucene的索引文件(5) 1. 存储域数据文件(.fdt和.fdx) Solr4.8.0里面使用的fdt和fdx的格式是lucene4.1的.为了提升压缩比,StoredFieldsFormat以16KB为单位对文档进行压缩,使用的压缩算法是LZ4,由于它更着眼于速度而不是压缩比,所以它能快速压缩以及解压. 1.1 存储域数据文件(.fdt) 真正保存存储域(stored field)信息的是fdt文件,该文件存放了压缩后的文档,按16kb或者更大的模块大…
0引言 随着万维网的发展和大数据时代的到来,每天都有大量的数字化信息在生产.存储.传递和转化,如何从大量的信息中以一定的方式找到满足自己需求的信息,使之有序化并加以利用成为一大难题.全文检索技术是现如今最普遍的信息查询应用,生活中利用搜索引擎,在博客论坛中查找信息,这些搜索的核心原理就是本文要实现的全文检索技术.随着文档信息数字化的实现,将信息有效存储并及时准确的提取是每一个公司.企业和单位要做好的基础.针对英文的全文检索已经有很多成熟的理论和方法,开放源代码的全文检索引擎Lucene 是Apa…
Lucene 的索引文件锁原理 2016/11/24 · IT技术 · lucene   环境 Lucene 6.0.0Java “1.8.0_111”OS Windows 7 Ultimate 线程安全 在Lucene中,打开一个IndexWrite之后,就会自动在索引目录中生成write.lock文件,这个文件中并不会有内容,不管是在索引打开期间还是在索引关闭之后,其大小都为0KB,并且在IndexWriter关闭之后,并不会删除该文件.如果同时打开多个IndexWriter的话,后打开的I…
参考链接: FTP README 如何下载 NCBI NR NT数据库? 下载blast:ftp://ftp.ncbi.nlm.nih.gov/blast/executables/blast+ 先了解BLAST Databases:BLAST FTP Site   如何下载NCBI blast数据库? NCBI提供了一个非常智能化的脚本update_blastdb.pl来自动下载所有blast数据库. 脚本使用方法: perl update_blastdb.pl nr 有哪些可供下载的blast…
                            第一部分:Lucene建立索引 Lucene建立索引主要有以下两步:第一步:建立索引器第二步:添加索引文件准备在f盘建立lucene文件夹,然后在lucene下建立文件夹test和index两个文件夹.在test文件夹下建立如下四个txt文件a.txt 内容:中华人民共和国b.txt 内容:人民共和国c.txt 内容:人民d.txt 内容:共和国 这四个文件就是我们要建立索引的文件,Index文件夹作为索引结果输出文件夹 准备工作完成以后,…
来自于本人博客: lucene构建restful风格的简单搜索引擎服务 本人的博客如今也要改成使用lucene进行全文检索的功能,因此在这里把代码贴出来与大家分享 一,文件夹结构: 二,配置文件: 总共同拥有四个配置文件:bonecp-config.xml,IKAnalyzer.cfg.xml,log4j.properties,system-config.xml 1.bonecp-config.xml是配置jdbc连接池用的,不用这个配置也行,bonecp包有默认配置 2.IKAnalyzer.…
lucene正常情况目录下的文件 有三个文件. segments.gen segments_a08, 还有一个类似 _uw.cfs名字的东西. 当然,不一定都一样, 但肯定是这三个. 如果出现了很多文件.不要着急, 看下面的 . 如果lucene的索引目录下出现了很多文件, 肯定是有问题的. 几个方面.首先lucene在执行写操作时, 会先在目录下写如一个write.lock的文件锁定这个目录,以避免别的索引再操作这个路径. 否则那样肯定会乱. 锁定之后, 开始写索引, 写索引时lucene建了…
利用空闲时间写了一个使用lucene创建索引简单示例, 1.使用maven创建的项目 2.需要用到的jar如下: 废话不多说,直接贴代码如下: 1.创建索引的类(HelloLucene): package test.lucene; import org.apache.lucene.analysis.standard.StandardAnalyzer; import org.apache.lucene.document.Document; import org.apache.lucene.docu…
C++ Builder是最快的C++编译器之一,从编译速度来说也可以说是最快的win32C++编译器了.除了速度之外,C++builder的性能也在其它C++编译器的之上,但许多Delphi程序员仍受不了C++builder工程的编译速度.的确,delphi的速度要比任和c++的编译器都要快好多.Delphi在编译一个小工程的时候可能不到一秒,大的工程一般也在5秒钟这内编译完成了. 为什么delphi会比c++builder快这么多?是否有方法来c++builder的编译速度?本文就讲解了为什么…
Solr4.8.0源码分析(11)之Lucene的索引文件(4) 1. .dvd和.dvm文件 .dvm是存放了DocValue域的元数据,比如DocValue偏移量. .dvd则存放了DocValue的数据. 在Solr4.8.0中,dvd以及dvm用到的Lucene编码格式是Lucene45DocValuesFormat.跟之前的文件格式类似,它分别包含Lucene45DocValuesProducer 和Lucene45DocValuesConsumer来实现该文件的读和写. @Overr…
Solr4.8.0源码分析(9)之Lucene的索引文件(2) 一. Segments_N文件 一个索引对应一个目录,索引文件都存放在目录里面.Solr的索引文件存放在Solr/Home下的core/data/index目录中,一个core对应一个索引. Segments_N例举了索引所有有效的segments信息以及删除的具体信息,一个索引可以有多个Segments_N,但是有效的往往总是N最大的那个,为什么会出现多个segments_N,主要是由于暂时无法删除它们或者有indexwriter…
NetBeans配置 如何提高NetBeans的代码提示速度,打开下面的文件然后配置 **C:\Users\ylg\AppData\Roaming\NetBeans\8.2\config\Editors\text** 找到关于java的文件 x-java\Preferences\org-netbeans-modules-editor-settings-CustomPreferences.xml 在文件里加入下面一句话,value的值就是响应时间,可以根据自己电脑的性能设置大小. <entry n…
创建索引. 1.lucene下载. 下载地址:http://archive.apache.org/dist/lucene/java/. lucene不同版本之间有不小的差别,这里下载的是lucene 4.3. 2.导入jar包 打开eclipse,新建dynamic web project.解压下载的lucene压缩包,依次找到下面几个jar包,加到/WebContent/WEB-INF/lib目录下,然后Add to Build Path: 包名 位置 lucene-analyzers-com…
在windows上使用Lucene生成索引文件,将索引文件复制到Linux服务器上,报错"校验错误,可能是硬件问题". 所以,Lucene的跨平台只是代码跨平台,生成的索引不跨平台. 使用Java自带的ObjectStream也是一样,实际上并不跨平台. 一定要学会使用日志,重视日志. e.printStackTrace()默认把错误输出到了标准错误流,所以在日志文件中是看不见异常的.正确姿势是使用logger.error(String msg,Throwable e); 也可以使用S…
1.本来对于静态网页,我们不需要放在应用容器中,原因一时由于应用服务器是用来解析动态网页的,针对静态网页本来就性能不高,而且还会占用应用容器的资源,所以我们专门使用nginx用来解析静态网页.     2.当我们使用nginx解析静态网页的时候,网页在加载静态网页的时候的确时很快了,但是当静态网页的大小(size)非常大(因为会包含很多图片)的时候就会加载也会慢,所以我们需要更快地加载网页.     3.我们该怎么使用nginx更快的加载这些静态网页呢?开启nginx的gzip压缩 现在我们在测…
lucene 建立索引 总是报错 急!! http://zhidao.baidu.com/link?url=iaVs9JH4DfN6iwaWImt7VMJENWCWGGaWFGPjqhUw_jz7FsbdrUiAJwptgCNDR8OhWlJ8iUArECkLnpBQGGzTxq 这段话总是报错,编译不过去.红线画在keyword,text下面.while(rs.next()){ Document doc=new Document(); doc.add(Field.Keyword("BH&quo…