solr配置文件教程三

首先看solr的配置文件的tree树文件:

| + conf

|     - schema.xml

|     - solrconfig.xml

|     - stopwords.txt etc

| + data

|     - index

|     - spelllchecker

schema.xml(字段配置)

该配置文件主要用于配置数据源,字段类型定义,搜索类型定义等,是加载数据,创建索引和数据时的核心数据结构的配置文件。

solr的数据结构如下:

document:一个文档、一条记录

field:域、属性

solr通过搜索某个或某些field,返回若干个符合条件的document,或者按搜索的score排序返回。

如果跟数据库对比,document相当于数据库的表,field相当于表中的字段。而schema.xml就是为了定义一个表的结构(定义各个field的名字、类型、约束、等等)。

schema.xml的基本结构如下:

         

       

       

       

常用的配置说明:

field:定义一个document中的各个fields

               name:必填。该field的名字。前后都有下划线的name是系统保留的名字,比如“_version_”

              type:必填。类型,对应于fieldType的name

              default:该field的缺省值

              indexed:true/false,是否为该field建立索引,以让用户可以搜索它、统计它(facet)

              stored:true/false,定义这个field是否可以返回给查询者

               multiValued:true/false,是否可以容纳多个值(比如多个copyField的dest指向它)。如果是true,则该field不能被排序、不能作为uniqueKey

               required:true/false,告诉solr这个field是否接受空值,缺省为false

                docValues:true/false,建立document-to-value索引,以提高某些特殊搜索的效率(排序、统计、高亮)

copyField:把一个field的内容拷贝到另外一个field中。一般用来把几个不同的field copy到同一个field中,以方便只对一个field进行搜索

                 source:被拷贝的field,支持用通配符指定多个field,比如:*_name

                  dest:拷贝到的目的field

                  maxChars:最大字符数

uniqueKey:指定一个field为唯一索引

fieldType:定义field的类型,包括下面一些属性

              name:必填,被field配置使用

              class:必填,filedType的实现类。solr.TextField是路径缩写,"等价于"org.apache.solr.schema.TextField"

              multiValued:?

              positionIncrementGap:指定mutiValued的距离

               ananlyzer:如果class是solr.TextField,这个配置是必填的。告诉solr如何处理某些单词、如何分词,比如要不要去掉“a”,要不要全部变成小写……

                       type:index或query

                       tokenizer:分词器,比如:StandardTokenizerFactory

                        filter:过滤器,比如:LowerCaseFilterFactory

dynamicField:用通配符定义一个field来存在没有被field定义的漏网之鱼

            name:使用通配符,比如“*_i”,来处理类似“cost_i”之类的field

参考:http://blog.csdn.net/clementad/article/details/47666043

solrconfig.xml(索引配置和查询处理配置)

solrconfig.xml配置文件主要定义了SOLR的一些处理规则,包括索引数据的存放位置,更新,删除,查询的一些规则配置。

datadir 节点:dataDir>${solr.data.dir:d:/Server/Solr/data} 定义了索引数据和日 志文件的存放位置

luceneMatchVersion:4.8表 示 solr 底 层 使 用 的 是 lucene4.8

lib: 表示 solr 引用包的位置, 当 dir 对应的目录不存在时候,会忽略此属性

directoryFactory: 索引存储方案,共有以下存储方案

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 时数据会丢失。且不支持索引复制

codecFactory:编解码工厂允许使用自定义的编解码器。例如:如果想启动 per-fieldDocValues 格式, 可以在 solrconfig.xml 里面设置 SchemaCodecFactory: docValuesFormat="Lucene42": 这是默认设置,所有数据会被加载到堆内存中。 docValuesFormat="Disk": 这是另外一个实现,将部分数据存储在磁盘上。 docValuesFormat="SimpleText": 文本格式,非常慢,用于学习。

indexconfig:

用于设置索引的低级别的属性

设置索引库的锁方式,主要有三种:

1. single:适用于只读的索引库,即索引库是定死的,不会再更改

2. native:使用本地操作系统的文件锁方式,不能用于多个 solr 服务共用同一个 索引库。Solr3.6 及后期版本使用的默认锁机制。

3. simple:使用简单的文件锁机制

updateHandler:

设置索引库更新日志,默认路径为 solrhome 下面的 data/tlog。随着索引库的频 繁更新,tlog 文件会越来越大,所以建议提交索引时采用硬提交方式 ,即批量提交。

Query :查询

RequestDispatcher 请求转发器

参考:http://www.voidcn.com/blog/zeb_perfect/article/p-6000171.html

http://www.luoshengsha.com/197.html

dataconfig.xml(数据源配置)

参考:http://flyingsnail.blog.51cto.com/5341669/1575075

你可能感兴趣的:(solr配置文件教程三)