博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
谈谈Lucene和Solr索引存目录
阅读量:4512 次
发布时间:2019-06-08

本文共 1451 字,大约阅读时间需要 4 分钟。

  在Lucene中,有几种索引存放模式呢?用过的人可能记得SimpleFSDirectory、MMapDirectory、NIOFSDirectory、RAMDirectory这四种。新版本的通过FSDirectory.open可以自动获得最优的一种:

public static FSDirectory open(File path, LockFactory lockFactory) throws IOException {    if ((Constants.WINDOWS || Constants.SUN_OS)          && Constants.JRE_IS_64BIT && MMapDirectory.UNMAP_SUPPORTED) {      return new MMapDirectory(path, lockFactory);    } else if (Constants.WINDOWS) {      return new SimpleFSDirectory(path, lockFactory);    } else {      return new NIOFSDirectory(path, lockFactory);    }  }

  通过这段代码,我们级别可以了解各种Directory在哪种条件下是最优的。

MMapDirectory  内存映射索引模式,一部分放在内存,一部分放在磁盘,但是需要操作系统支持,最好是64位系统和64位JVM,这样内存才能达到最大的应用。linux 和 windows基本都能用。 SimpleFSDirectory 简单的磁盘存放,根据上面方法条件判断,在当MMapDirectory无法使用的时候,如果是Windows操作系统,推荐磁盘存储的模式。此种模式,会有大量的磁盘IO,因此索引的创建和检索严重依赖磁盘性能。 NIOFSDirectory  使用NIO方式读写索引。这个条件更恶搞了,在它之前首先判断windows。意味,在windows下它认为这个不是最优。主要原因:在windows下java nio存在bug。 RAMDirectory 这种内存存储方式,在这个方法里没有体现。它主要用来存放非持久化索引的,也就意味程序关闭,索引就丢失了。 NRTCachingDirectory 这是一种内存加磁盘存储的模式,主要用在实时搜索的场景,这在高版本的lucene才有。在solr默认的索引存储目录就是它。
上面大致介绍了一下各种索引存放方式,再补充一句:上面各种在现有操作系统下都可以用,但是各种有自己的使用场景或者有自己缺点。 介绍完了lucene的索引目录,那么再说说solr的索引存放目录。solr是基于lucene封装的,也就是lucene有的,solr也有,但是solr还有自己封装的,我主要介绍下面HdfsDirectory 和BlockDirectory :
HdfsDirectory 把索引存放到hdfs上的,它的使用场景就是索引是海量的。一般不是大数据,不会把数据放到hdfs上。
BlockDirectory 根据名字我们可以知道,它把索引分成块,在分布式存储的一种概念,一切数据的存储都是block。它是solr 4.x的产物,在后续版本中可能被替换。平常使用的不多。

转载于:https://www.cnblogs.com/likehua/p/4353800.html

你可能感兴趣的文章
css写的手机网站页面如何使网页左右固定不动?
查看>>
解析 Linux 中的 VFS 文件系统机制
查看>>
互联网网海无边,我精力有限
查看>>
P1531 I Hate It
查看>>
ecshop调用指定商品分类下的商品
查看>>
springmvc+json 前后台数据交互
查看>>
NPOI 模板 下载
查看>>
js 常用代码
查看>>
module.js:550 throw err; ^ Error: Cannot find module 'portfinder' at Function
查看>>
tar打包压缩命令
查看>>
objc反汇编分析,block函数块为何物?
查看>>
CSS概念【记录】
查看>>
Hibernate 实体关联关系映射(转载)
查看>>
isNotEmpty 与 isNotBlank 的区别
查看>>
HTML特效代码大全
查看>>
private System.ComponentModel.IContainer components = null;
查看>>
数据库的四个基本语句
查看>>
hdu 1754 I Hate It
查看>>
db2常用语句
查看>>
PHP程序员未来路在何方
查看>>