Solr 配置文件之schema.xml

schema.xml这个配置文件的根本目的是为了通过配置告诉Solr如何建立索引。

solr的数据结构如下:

  • document:一个文档、一条记录

    • field:域、属性

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

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

schema.xml的基本结构如下:

<schema>

<types>

<fields>

<uniqueKey>

<copyField>

</schema>

常用的配置说明:

  • 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 api获取schema信息:

http://<ip>:8983/solr/<collection>/schema?wt=json

http://<ip>:8983/solr/<collection>/schema/fields?wt=json

http://<ip>:8983/solr/<collection>/schema/dynamicfields?wt=json

http://<ip>:8983/solr/<collection>/schema/copyfields?wt=json

(原创文章,转载请注明转自Clement-Xu的博客)

版权声明:本文为原创文章,转载请注明转自Clement-Xu的csdn博客。

时间: 2024-12-22 06:14:55

Solr 配置文件之schema.xml的相关文章

我与solr(五)--关于schema.xml中的相关配置的详解

先把文件的代码贴上来: <?xml version="1.0" encoding="UTF-8" ?> <!-- 版权说明... --> <!-- 这是solr的chema 文件,这个文件应该被重命名为"schema.xml",而且他应该放在solrhome/core/conf文件下面. 获取你也能在solr webapp 的classload下面找到他. 更多的信息可以查看 http://wiki.apache.o

Solr 6.1学习笔记(一)-- 配置文件 managed-schema (schema.xml) (2)

接上篇    2. <dynamicField> 为满足前辍或后辍的一些字段提供统一的定义.如<dynamicField name="*_s" index="true" stored="true" type="string" /> 表示所有以“_s”为后辍的field都具有index="true" stored="true" type="string&q

Solr 6.7学习笔记(02)-- 配置文件 managed-schema (schema.xml) - filter(5)

自定义fieldType时,通常还会用到filter.filter必须跟在tokenizer或其它filter之后.如: <fieldType> <analyzer> <tokenizer class="solr.StandardTokenizerFactory"/> <filter class="solr.LowerCaseFilterFactory" /> </analyzer> </fieldT

solr的schema.xml配置属性解释

schema.xml做什么? SOLR加载数据,创建索引和数据时,核心数据结构的配置文件是schema.xml,该配置文件主要用于配置数据源,字段类型定义,搜索类型定义等.schema.xml的配置直接影响搜索结果的准确性与效率. <types></types>节点 types节点主要用于搜索类型的定义,这里给出常用类型的定义. 1 <fieldType name="string" class="solr.StrField" sortM

schema.xml的配置

schema.xml做什么? SOLR加载数据,创建索引和数据时,核心数据结构的配置文件是schema.xml,该配置文件主要用于配置数据源,字段类型定义,搜索类型定义等.schema.xml的配置直接影响搜索结果的准确性与效率. <types></types>节点 types节点主要用于搜索类型的定义,这里给出常用类型的定义. <fieldType name="string" class="solr.StrField" sortMis

3 Solr配置文件 schema.xml

1 添加自己的分词器(mmseg4j) 意思是textCommplex 这个类型,用的是 com.chenlb.mmseg4j.solr.MMSegTokenizerFactory 这个分词器,词库是用到的solr.home目录下面的dic目录, 但是mmseg4j.jar 1.9 把词库包进去了,想要用外面的,需要把里面的删除掉, <filter class="solr.LowerCaseFilterFactory"/>  下面可选择性的添加一些自己的过滤器 <fi

solr schema.xml

http://blog.csdn.net/escaflone/article/details/5726320(转载) 现在我们开始研究载入的数据部分(importing data) 在正式开始前,我们先介绍一个存储了大量音乐媒体的网站http://musicbrainz.org , 这里的数据都是免费的,一个大型开放社区提供. MusicBrainz每天都提供一个数据快照(snapshot)的SQL文件,这些数据可以被导入PostgreSQL数据库中. 一.字段配置(schema) schema

关于solr schema.xml 和solrconfig.xml的解释

一.字段配置(schema) schema.xml位于solr/conf/目录下,类似于数据表配置文件, 定义了加入索引的数据的数据类型,主要包括type.fields和其他的一些缺省设置. 1.先来看下type节点,这里面定义FieldType子节点,包括name,class,positionIncrementGap等一些参数. name:就是这个FieldType的名称. class:指向org.apache.solr.analysis包里面对应的class名称,用来定义这个类型的行为. <

solr4.5 schema.xml配置文件

schema.xml配置文件是用于定义index索引库的结构,有点类似于数据表表的定义. 当我们打开schema.xml配置文件时,也许会被里面密密麻麻的代码所吓倒,其实不必惊慌,里面其实就两个东西filed和fieldType. 1.field–类似于数据表的字段 <fields>       <field name="id" type="string" indexed="true" stored="true&quo