一.索引存储

  当文档提交到索引之后,directory目录组件会将它们写入到持久化存储器。Solr的目录组件具有以下重要特点:

    1.隐藏持久存储的读写细节,例如,将文档写入到磁盘或通过JDBC在数据库中存储文档。

    2.实现特定的存储锁定机制,防止索引出错。例如,在操作系统级别上基于文件系统的存储锁定。

    3.将Solr从JVM和操作系统的专有性中解脱出来。

    4.启用基础目录方案的扩展机制,以支持特定应用,如近实时搜索。

  Solr提供了不同的目录方案,但没有所谓的适用于所有Solr装机情况的最佳目录方案。根据Solr应用的具体情况,思考如何确定最佳方案。实践中取决于操作系统本身、JVM类型及应用场景等。

二.默认存储配置

  默认情况下,Solr为一个内核设置一个数据目录,将数据存储在本地文件系统中。默认情况下,将索引数据存储在conf配置目录同级的data目录下。在Solr4.x及之前的版本中,可以直接配置Solr core的一些基本信息,如下:

  <core loadOnStartup="true" instanceDir="collection1/" transient="false" name="collection1" dataDir="/usr/local/solr-data/collection1" />

  但是在之后版本就不建议这样配置,随着版本更新,新版本逐渐从之前的单机Solr转向SolrCloud集群,在集群模式中,索引数据的配置都是一直的,不需要单独指定。

  首先要考虑,索引的数据目录是否有足够的存储容量。此外,数据目录支持快速读写也是非常重要的,其中对读性能要求更高【Solr的目的是快速查询而不是批量更新】。因此,在设置Solr时需要考虑一下问题:

    1.每个内核不应与其他进程争夺磁盘空间。

    2.如果同一台服务器上有多个内核,建议为每个索引单独设置独立的物理磁盘进行存储。

    3.如果预算允许,考虑使用高质量、高速磁盘,如固态硬盘SSD。

    4.考虑服务器RAID【磁盘阵列】策略对Solr的影响。

    5.操作系统中用于缓存的内存容量也会对磁盘I/O需求产生不可小觑的影响。

三.选择一个目录方案

  一旦解决了存储方面的问题,还需要考虑存储方案的最佳目录方案。Solr使用solr.NRTCachingDirectoryFactory启用默认目录,在solrconfig.xml中配置<directoryFactory>元素来指定此目录。

  

  NRTCachingDirectoryFactory是solr.StandDirectoryFactory的一个封装类,用来添加对近实时搜索的支持。在运行时,StandardDirectoryFactory根据操作系统与JVM类型来选择一个具体的目录方案。

  

  详解:

    1.MMapDirectory:读取索引时使用内存映射I/O。这是安装了Oracle JVM的64位Windows、Solaris或Linux类操作系统的最佳选择。

    2.SimpleFSDirectory:使用Java的RandomAccessFile方法。除非是32位Windows操作系统,否则应避免使用此方法。

    3.NIOFSDirectory:通过java.nio进行优化,以避免同一个文件的同步读操作。这是JVM长期存在的一个问题,应避免在Windows上使用此方法。

  通过Solr控制台的内核管理页,可以看见Solr服务器指定的数据目录【单机模式】:

  

  注意,在SolrCloud集群模式时是看不到这是设置的!

  

Solr搜索引擎【索引管理】的更多相关文章

  1. 配置好solr搜索引擎服务器后java后台如何将商品信息导入索引库

    首先,在配置文件目录中添加solr 服务器的bean 配置文件 solr服务器的url可以写在配置文件中: url地址其实就是我们网页可以访问的solr地址: 然后我们写 service packag ...

  2. elasticsearch系列二:索引详解(快速入门、索引管理、映射详解、索引别名)

    一.快速入门 1. 查看集群的健康状况 http://localhost:9200/_cat http://localhost:9200/_cat/health?v 说明:v是用来要求在结果中返回表头 ...

  3. elasticsearch最全详细使用教程:入门、索引管理、映射详解、索引别名、分词器、文档管理、路由、搜索详解

    一.快速入门1. 查看集群的健康状况http://localhost:9200/_cat http://localhost:9200/_cat/health?v 说明:v是用来要求在结果中返回表头 状 ...

  4. Elasticsearch vs Solr 搜索引擎对比和选型

    前言 全文搜索属于最常见的需求,开源的 Elasticsearch 是目前全文搜索引擎的首选. 基于Lucene它可以快速地储存.搜索和分析海量数据.维基百科.Stack Overflow.Githu ...

  5. Solr搜索引擎服务器学习笔记

    Solr简介 采用Java5开发,基于Lucene的全文搜索服务器.同时对其进行了扩展,提供了比Lucene更为丰富的查询语言,同时实现了可配置.可扩展并对查询性能进行了优化,并且提供了一个完善的功能 ...

  6. Lucene/Solr搜索引擎开发笔记 - 第1章 Solr安装与部署(Jetty篇)

    一.为何开博客写<Lucene/Solr搜索引擎开发笔记> 本人毕业于2011年,2011-2014的三年时间里,在深圳前50强企业工作,从事工业控制领域的机器视觉方向,主要使用语言为C/ ...

  7. PHP-从零开始使用Solr搜索引擎服务(下)

    前言: 原文地址: http://www.cnblogs.com/JimmyBright/p/7156085.html 前面在配置完成Solr服务之后,在浏览器上可以打开Solr的管理界面,这个界面几 ...

  8. Solr搜索引擎 — 通过mysql配置数据源

    一,准备数据库数据表结构 CREATE TABLE `app` ( `id` int(11) NOT NULL AUTO_INCREMENT, `app_name` varchar(255) NOT ...

  9. 手动刷新magento的索引管理方法

    当我们网站商品很多的时候,比如有几千件,我们刷新Magento的索引管理(Index Management)经常会失败.那么后台刷新不了,我们还可以通过命令行来刷新. 使用命令行来刷新索引管理会极大降 ...

  10. Solrj和Solr DIH索引效率对比分析

    测试软件环境: 1.16G windows7 x64  32core cpu . 2.jdk 1.7  tomcat 6.x  solr 4.8 数据库软件环境: 1.16G windows7 x64 ...

随机推荐

  1. NOI1995 石子合并 [Luogu P1880]

    一道区间dp的模板题,这里主要记一下dp时环形数据的处理. 简略版:方法一:枚举分开的位置,将圈化为链,因此要做n次. 方法二:将链重复两次,即做一个2n-1长度的链,其中第i(i<=n)堆石子 ...

  2. MIT线性代数:15.子空间的投影

  3. [考试反思]1109csp-s模拟测试107:低能

    诶一看这不是水题AK场吗?然后80分钟就拿到了285分. 然后,对拍?还是卡T2常数?还是想T2正解? 于是上述三项我依次进行了. 前两项让我的分数丝毫不变但是吃掉了我一个多小时的时间. 卡常卡的也不 ...

  4. CSPS模拟 78

    大敛好稳啊..居然在模拟赛拿了540.. 有点畏惧.jpg 而我就是什么什么不行级人物了.. 真正在联赛拉开那么多分怎么追啊.. T1kmp?hash? T2 概率小到炸精时,对答案也就没贡献了 然后 ...

  5. 详解SpringBoot应用跨域访问解决方案

    一.什么是跨域访问 说到跨域访问,必须先解释一个名词:同源策略.所谓同源策略就是在浏览器端出于安全考量,向服务端发起请求必须满足:协议相同.Host(ip)相同.端口相同的条件,否则访问将被禁止,该访 ...

  6. abp(net core)+easyui+efcore实现仓储管理系统——EasyUI之货物管理八(二十六)

    abp(net core)+easyui+efcore实现仓储管理系统目录 abp(net core)+easyui+efcore实现仓储管理系统——ABP总体介绍(一) abp(net core)+ ...

  7. MySQL传统点位复制在线转为GTID模式复制

    1.  GTID优缺点 MySQL传统点位复制在5.7版本前是主要的主从复制模式,而随着MySQL5.6版本引入GTID,并且MySQL5.7进行各方面的优化以后,在mySQL5.7(尤其是MySQL ...

  8. 在linux用ueditor遇到的问题

    在使用ueditor时,遇到很多问题.最大问题是就是服务器返回出错 最让人头疼的是preview没有任何信息.之前也找过很多的资料,很多资料都没有提到修改controller.php文件中error_ ...

  9. Linux系统移植的重要文件

    移植linux内核的关键文件:             arch/arm/mach-s5p6818/cpu.c                         cpu_init_machine()   ...

  10. Java程序线上故障排查

    目录 一.Linux 内存和cpu 网络 磁盘 /proc文件系统 二.JVM Java堆和垃圾收集器 gc日志分析 JVMTI介绍 Attach机制 java自带工具 三.三方工具 jprofile ...