solr中DirectoryFactory学习笔记

lucene以及他的solr们最重要的一个属性就是他的目录实现(索引存储方式),这个接口提供抽象的IO操作层,配置不当会严重影响性能。
在solr中这个配置是在solrconfig.xml文件中的directoryFactory标签完成的,配置示
例如下:

 代码如下 复制代码

<directoryFactory name="DirectoryFactory" class="${solr.directoryFactory:solr.NRTcachingDirectoryFactory}"/>

solr提供了好几种目录工厂类,分别如下:
1:solr.StandardDirectoryFactory,这是一个基于文件系统存储目录的工厂,它会试图选择最好的实现基于你当前的操作系统和Java虚拟机版本。
2:solr.SimpleFSDirectoryFactory,适用于小型应用程序,不支持大数据和多线程。
3:solr.NIOFSDirectoryFactory,适用于多线程环境,但是不适用在windows平台(很慢),是因为JVM还存在bug。
4:solr.MMapDirectoryFactory,这个是solr3.1到4.0版本在linux64位系统下默认的实现。它是通过使用虚拟内存和内核特性调用mmap去访问存储在磁盘中的索引文件。它允许lucene或solr直接访问I/O缓存。如果不需要近实时搜索功能,使用此工厂是个不错的方案。
5:solr.NRTCachingDirectoryFactory,此工厂设计目的是存储部分索引在内存中,从而加快了近实时搜索的速度。
6:solr.RAMDirectoryFactory,这是一个内存存储方案,不能持久化存储,在系统重启或服务器crash时数据会丢失。且不支持索引复制。

时间: 2024-09-25 10:17:52

solr中DirectoryFactory学习笔记的相关文章

Java中jqGrid 学习笔记整理——进阶篇(二)_java

相关阅读: Java中jqGrid 学习笔记整理--进阶篇(一) 本篇开始正式与后台(java语言)进行数据交互,使用的平台为 JDK:java 1.8.0_71 myEclisp 2015 Stable 2.0 Apache Tomcat-8.0.30 Mysql 5.7 Navicat for mysql 11.2.5(mysql数据库管理工具) 一.数据库部分 1.创建数据库 使用Navicat for mysql创建数据库(使用其他工具或直接使用命令行暂不介绍) 2. 2.创建表 双击打

2.myql数据导入到solr,并建立solr索引(学习笔记)

1.1     业务域名的配置 1.1.1   需求 要使用solr实现电商网站中商品搜索. 电商中商品信息在mysql数据库中存储了,将mysql数据库中数据在solr中创建索引. 需要在solr的schema.xml文件定义商品Field. 1.1.2   定义步骤 在schema.xml中配置域   商品id(pid) 这是商品的主键,由于schema文件中已经有主键id了就不需要对它配置了 <field name="id"type="string" i

jquery中ajax学习笔记4_jquery

缓存问题: 何谓缓存问题?即当浏览器的输入内容相同,即请求的URL相同,这样浏览器就会去读缓存,两次的内容一样,就不会和服务器端进行交互. 解决方式:在请求的url中加上时间戳. 通过我的测试,IE.360两次用户名输入一致时不会和服务器端交互,firefox即使两次用户名输入的一样,仍然会和服务器端交互. 即:firefox的中服务器端返回的temp值会每次加1,IE.360就不会改变.故加上时间戳在这三种浏览器中都不会再有缓存问题. 修改的代码: AJAXServer.java 缓存问题 复

jquery中ajax学习笔记3_jquery

摘要: ajax学习1中介绍了使用jquery封装的ajax来接收服务器端的文本数据以及使用XMLHttpReques对象来接收服务器端的文本数据 ajax学习2中介绍了使用XMLHttpReques来接收服务器的端XML数据,本节主要介绍使用jqery封装的ajax使用XML格式接收服务器端的数据. 由于很多知识都已经做了详细介绍,本节只介绍需要修改的代码,使用jqery封装的ajax使用XML格式接收服务器端的数据,web.xml.后台的servet都不用改, 只是ajax.html中调用的

jquery中ajax学习笔记一_jquery

AJAX简单介绍: AJAX 指异步 JavaScript 及 XML(Asynchronous JavaScript And XML),是指一种创建交互式网页应用的网页开发技术.通过 AJAX,JavaScript 可使用 JavaScript 的 XMLHttpRequest 对象来直接与服务器进行通信.通过这个对象,您JavaScript 可在不重载页面的情况与 Web 服务器交换数据. jQuery是一种javascript框架,是对javascript的一种轻量级的封装,容易理解. A

asp.net中单例模式学习笔记(1/2)

定义:单例模式(SingletonPattern),保证一个类仅有一个实例,并提供一个访问它的全局访问点.  其实就是实现只有一个门可以进入,且每次只给一个人进入.这就像以前的一位博友所举的例子,很多人排队去厕所蹲坑一样,每一次只能让一个人去蹲坑.实现单例模式的原因,要么是资源共享,要么是控制资源等.所谓资源共享,就是因为单例模式保证了一个类仅有一个实例,所以大家访问的实例是一致的.而控制资源的话,主要是减少资源的申请与释放等.   类型:创建型模式 类图: 概述: 在很多比较大型的程序中,全局

java中字符串学习笔记

学过编程的都会知道,字符串是常量中的一种,然而java中的String不仅仅是常量,又是类,是一个特殊的类,是不可变和最终类: 1,不可变的String:说到不可变性,就要说java中String的内存分配了,如下图 当运行代码: String str = "abc"; 时,内存分布为 这时候看起来和一个int a = 26;很相似了,StringPool是常量池里面用来存放字符串常量的地方,里面的值不可修改 而如果代码是这样写的: String str = new String(&q

linux中echo学习笔记

先介绍一下标准的command line ,它包含三个部件: command_name option argument 好的,回来,echo就是将argument送出至标准输出(STDOUT),通常就是送到显示器输出. 还是直接跑一下来看看echo命令吧:   是不是觉得奇怪怎么就一个空白行,就回到shell prompt(就是$)上了. 原因就是因为echo在预设上,在显示完argument之后,还会送出一个换行符号. 但是上面的command并没有任何的argument,所以就只有一个换行符

Android中PackageManager学习笔记-ApplicationInfo

http://blog.csdn.net/itfootball/article/details/22385437 http://blog.csdn.net/itfootball/article/details/22439647