旱金莲种子报价哪家最便宜?

小说:旱金莲种子报价哪家最便宜?作者:秉通文更新时间:2019-05-27字数:96259

“聪明。“眼前的世界咔嚓一声碎裂开来了,取而代之的还是一样的景色,显然刘皓刚才是在利用幻术将君麻吕的招式看了一遍,毕竟尸骨脉的恐怖力量他在动漫里面就清晰感受得到,但如果不亲眼看一下还是不放心。

北京可以种植紫叶李吗?

和上次说着同样的话,但意义已经完全不同,他们心悦诚服地投降大唐,不仅是国王本人,所有的大臣和贵族都做出了同样的选择,这便是一个国家的决定,属于一种不可动摇的国策,同样,远恩王子则坚持他的理念,他在大唐与石国举行受降仪式时,趁北城唐军撤退,悄悄地离开拓枝城,他将赌注押到了大食的一方,相信自己总有一天还会在石国王宫正式接过粟特总督的权杖。
而赤瞳现在显然不是如此,她这一刀在布兰德眼前比起刚才她斩出的每一刀都更胜一筹,如果说赤瞳刚才的攻击是将力量都集中在刀锋上,那么现在就是将力量都集中在刀尖上,在力量的运用上更胜一筹了。

唐三指指身后的绛珠,“我们这位辅助系魂师的能力是治疗。她在一开始就开启了自己的武魂,释放出了治疗的能力。这治疗能力是足以蔓延比赛台的。那并不是要为了给我们治疗,而是给他们。如果我们真想杀人,会给对手治疗?看来,他们是不需要我们治疗了,绛珠学姐,停下吧。”

前言:目前自己在做使用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://github.com/apache/lucenenet

PanGu分词

https://github.com/LonghronShen/Lucene.Net.Analysis.PanGu/tree/netcore2.0

 

Lucene.net 4.8.0 和之前的Lucene.net 3.6.0 改动还是相当多的,这里对自己开发过程遇到的问题,做一个记录吧,希望可以帮到和我一样需要升级Lucene.net的人。我也是第一次接触Lucene ,也希望可以帮助初学Lucene的同学。

 

一,Lucene 创建索引:IndexWriter

1.IndexWriter的介绍

IndexWriter 是用来创建和维护索引的。IndexWriter的创建:在Lucene4.8.0中,创建IndexWriter对象,需要用到IndexWriterConfig 参数,IndexWriterConfig用来设置一些IndexWriter的属性

IndexWriterConfig _indexWriterConfig = new IndexWriterConfig(Lucene.Net.Util.LuceneVersion.LUCENE_48,analyze)
IndexWriter _indexWriter = new IndexWriter(dir,_indexWriterConfig)

上面的代码创建了一个基本的IndexWriter对象,每个基本IndexWriter都必须有两个必要的属性:1.操作的索引目录 dir ;2. 分词器 analyze .这里要注意,IndexWriter的分词器和IndexSearch的分词器应该是相同的,否则将会影响搜索结果。

我们通过IndexWriterConfig 可以设置IndexWriter的属性,已达到我们希望构建索引的需求,这里举一些属性,这些属性可以影响到IndexWriter写入索引的速度:

IndexWriterConfig.setRAMBufferSizeMB(double);
IndexWriterConfig.setMaxBufferedDocs(int);
IndexWriterConfig.setMergePolicy(MergePolicy)

setRAMBufferSizeMB() 是设置,当IndexWriter添加的文档的大小超过RAMBufferSizeMB ,IndexWriter就会把在内存中的操作,写入到硬盘中。具体一点:IndexWriter在执行AddDocuments(写入文档),DeleteDocuments(删除文档),UpdateDocuments(更新文档),这些操作的时候,这些操作都会先缓冲到内存中,也就是说执行完这些函数,其实储存的索引目录下是没有任何改变的,当AddDocuments的容量超过上述的属性的时候,这些操作才会具体执行到储存索引的硬盘当中。默认的DEFAULT_RAM_BUFFER_SIZE_MB 是16MB.

 

setMaxBufferedDocs() 是设置,当IndexWriter添加的文档数量超过MaxBufferedDocs的时候,IndexWriter就会把内存中写入的文档,写到硬盘中,并生成一个新的索引文件segment。关于Lucene的索引结构会在下面说到。

 

setMergePolicy 是设置索引合并的策略,MergePolicy中有一个参数DEFAULT_MAX_CFS_SEGMENT_SIZE 表示索引中最多有多少个segment文件。 

1.1 提高索引的速度 

上面提到了三个IndexWriterConfig的三个属性。我们知道,IndexWriter是当缓存中的容量达到一定的限制条件之后,才开始将缓存中的操作写入到硬盘中,事实上,如果我们把限制条件定的值越大,索引的速度是越快的。显而易见,如果设置RAMBufferSizeMB和MAXBufferedDocu越大,IndexWriter 写入硬盘的次数就越少,而写索引的时间耗费大多在对硬盘的操作之上。

IndexWriter写入索引之后,在索引目录里会有很多segment文件。segment文件数量达到MergeFactor (设置合并因子)的时候,IndexWriter会将这些segment文件合并,形成一个新的segment文件,类似于压缩。而在索引目录中,如果segment文件越多,则搜索的速度会降低,segement文件越少,搜索的速度也就越快。所以当我们设置MergeFactor的值越大的时候,搜索的速度就会越快,而合并segement的速度则会降低,也即索引的速度会降低。

 

2. 索引文件的结构

这是,一个索引目录下的索引文件。结构是这样的:

  (索引)Index  

     ---(段)Segment  

       ---(文档)Document

          --- (域)Field

            --- (词)Term

上面的图片中,只有一个段,_v6.fdt ;_v6.fdx ....... 都属于_v6 segment中的内容。而segments_5u 和segments.gen 是段的元数据文件,也即它们保存了段的属性信息。

  • XXX.fnm保存了此段包含了多少个域,每个域的名称及索引方式。
  • XXX.fdx,XXX.fdt保存了此段包含的所有文档,每篇文档包含了多少域,每个域保存了那些信息。
  • XXX.tvx,XXX.tvd,XXX.tvf保存了此段包含多少文档,每篇文档包含了多少域,每个域包含了多少词,每个词的字符串,位置等信息。

上面的是正向信息,还有反向信息就不详细说了。

 

3.IndexWriter的优化  

在Lucene中IndexWriter.Optimize 用来优化索引,而在Lucene4.8.0中Optimize 已经更名为ForceMerge,为的是少让你使用。IndexWriter的优化实际上就是把Segment文件进行合并,你可以输入参数,ForceMerge(segments) 表示,合并到索引目录里最多有segments个段文件。而当参数越小的时候,也即合并的文件越多的时候,消耗的时间和空间就越大。很显然,合并是为了让我们的搜索速度变的更快。

在优化的过程中,需要当前索引容量两倍的空间,比如你现在的索引大小是40个G,在优化过程中,索引的大小会增加到80多个G,然后再合并直到最后只有30多个G。当你的索引更新不是特别频繁的时候,可以优化一下,如果更新特别频繁,那么调用ForceMerge就会效率很低,这个时候,我们可以设置上面提到过的MergeFactor来,让索引中segments文件少一些。

 

4.IndexWriter的注意事项

1.IndexWriter在操作一个索引的时候会创建一个锁定文件,Writer.lock 。如果有另一个IndexWriter要打开这个目录,将会报错。

2.IndexWriter实例是完全线程安全的,多个线程可以同时调用它的任何方法.

编辑:华董纯戏

发布:2019-05-27 06:07:55

当前文章:http://www.cnsdbtzg.com/ask/question_48929.html

4公分早园竹多少钱一棵? 紫薇多少钱一棵呢? 哪里有藤本月季扦插大苗? 吉林可以种植黄金槐吗? 哪个品种紫藤最耐寒? 你知道他家的樱花树价低到什么程度吗?要是识货的人早就将它拿下 行情风向标,玫瑰树价格不参考全国最大产地,怎么行? 地径5公分日本红枫什么价格?

39373 35778 77912 98184 63570 34112 41316 73684 54543 87045 24298 30057 30039 44809 76203 67899 51461 32581 39953 78785

我要说两句: (0人参与)

发布