Solr中schema.xml的解释

时间:2023-12-11 18:12:44

Solr-4.10.2与Tomcat整合
schema.xml位于D:\solr\data\solr\collection1\conf\中。
1、fieldType节点
    name: FieldType的名称
    class: 指向org.apache.solr.analysis包里面对应的class名称,用来定义这个类型的行为
    omitNorms: 字段检索时被省略相关的规范
    positionIncrementGap:定义在同一个文档中此类型数据的空白间隔,避免短语匹配错误
    此外还可以建立索引和进行查询的时候要使用的分析器analyzer
2、fields节点
    name:字段名
    type:之前定义过的各种FieldType
    indexed=true|false,是否被索引,如果一个字段设为true,那么它可以进行: earchable, sortable, facetable
    stored=true|false,是否被存储(如果不需要存储相应字段值,尽量设为false)
    default :字段的默认值
    compressed=true|false,true 使用gzip压缩存储(只适用 compressable;TextField和StrField)
    compressThreshold=<integer> 保证压缩到不小于一个大小
    multiValued=true|false,是否有多个值(对可能存在多值的字段尽量设置为true,避免建索引时抛出错误)
    omitNorms=true|false,true 则字段检索时被省略相关的规范
    omitTermFreqAndPositions=true|false,true 省略这一领域的长远频率,位置和有效载荷
3、copyField复制节点
    source:数据来源,fields中的name
    dest: 目的地,fields中的name
4、dynamicField动态节点
    name:字段名
    type:之前定义过的各种FieldType
    indexed=true|false,是否被索引,如果一个字段设为true,那么它可以进行: earchable, sortable, facetable
    stored=true|false,是否被存储(如果不需要存储相应字段值,尽量设为false)
5、uniqueKey
    uniqueKey 设置字段惟一,<uniqueKey>user_id</uniqueKey>  
    文档的唯一标识, 必须填写这个field(除非该field被标记required="false"),否则solr建立索引报错。
6、默认搜索字段
    <defaultSearchField>name</defaultSearchField>
    如果搜索参数中没有指定具体的field,那么这是默认的域。
7、默认搜索类型
    <solrQueryParser defaultOperator="OR" />
    配置搜索参数短语间的逻辑,可以是"AND|OR"。
8、< schema name =" example " version =" 1.2 " >
    name:标识这个schema的名字
    version:现在版本是1.2
9、为了改进性能,可以采取以下几种措施:
    将所有只用于搜索的,而不需要作为结果的field(特别是一些比较大的field)的stored设置为false
    将不需要被用于搜索的,而只是作为结果返回的field的indexed设置为false
    删除所有不必要的copyField声明
    为了索引字段的最小化和搜索的效率,将所有的 text fields的index都设置成field,然后使用copyField将他们都复制到一个总的 text field上,然后对他进行搜索。
    为了最大化搜索效率,使用java编写的客户端与solr交互(使用流通信)
    在服务器端运行JVM(省去网络通信),使用尽可能高的Log输出等级,减少日志量。