Solr 优化主关键字索引

大多在Solr 中的存储的数据有某种类型的主关键字。主关键字作为任何document 的唯一存储值,也是作为某个document唯一性的标识字段,正是因为主关键字在大多数情况下是独一无二的值。尽管如此,这个字段检索到的速度并不是与数据库中的关键字索引一样快的。希望更快,怎么办? Solr 4.x打给我们惊喜。

在字段区域(schema.xml配置中),有如下设置:

<field name="id" type="string" indexed="true" stored="true" required="true" />


关键字区域设置:

<uniqueKey>id</uniqueKey>

一下步骤将优化检索主关键字字段。

1. 使用Lucene弹性检索(flexible indexing)和脉冲编解码器去处理定义的id字段。为了做到这点,需要配置字段类型。

<fieldType name="string_pulsing" class="solr.StrField" postingsFormat="Pulsing40"/>


2. 将修改原来的字段的类型定义:

<field name="id" type="string_pulsing" indexed="true" stored="true" required="true" />


3. 另外,在solrconfig.xml 文件中添加如下配置:

<codecFactory class="solr.SchemaCodecFactory"/>


这样配置是为了使修改的数据被写到反转索引中去。这里使用“PulsingCodec” (postingsFormat="Pulsing40") ,是为了以一种特殊的方式存储唯一的值。在codec编解码器之后有这种思想:当从索引文件中检索文档术语或者文档时,对于低频率术语(term)以一种特殊的方式写入,保存到一个单一的I/O寻找操作中去。正是如此,当大量地检索主关键字段时,能够获得对于这个字段性能的极大提升。

在solrconfig.xml file 的配置是必须的,没有这个配置会报出Exception,而指定这个配置就是让Solr使用codec工厂创建一个codec实例而已。有时,你会发现这样修改,性能上并没有特别显著地提高,可能是由于索引文件少,没法感知到而已。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值