schema.xml是Solr中用户定义字段类型及字段的配置文件
一、types节点
在节点<types> 中定义 <fieldType>子节点
包含属性:
name: FieldType的名称
class: 指向org.apache.solr.analysis包里面对应的class名称,用来定义这个类型的行为
omitNorms: 字段检索时被省略相关的规范
positionIncrementGap:定义在同一个文档中此类型数据的空白间隔,避免短语匹配错误
此外还可以建立索引和进行查询的时候要使用的分析器analyzer
<schema name="example" version="1.2">
<types>
<fieldType name="int" class="solr.TrieIntField" precisionStep="0" omitNorms="true" positionIncrementGap="0" />
<fieldType name="float" class="solr.TrieFloatField" precisionStep="0" omitNorms="true" positionIncrementGap="0" />
<fieldType name="double" class="solr.TrieDoubleField" precisionStep="0" omitNorms="true" positionIncrementGap="0" />
<fieldType name="string" class="solr.StrField" sortMissingLast="true" omitNorms="true" />
<fieldType name="text" class="solr.TextField" positionIncrementGap="100">
<analyzer>
<tokenizer class="solr.WhitespaceTokenizerFactory" />
</analyzer>
</fieldType>
</types>
......
</schema>
二、fields节点
<fields>节点下包含子节点<field>
包含属性:
name 字段名字
default
-字段的默认值
indexed=true|false
-被索引,如果一个字段设为true,那么它可一进行: earchable, sortable, facetable
stored=true|false
-true 则字段应当可检索
compressed=true|false
-true 使用gzip压缩存储(只适用 compressable;TextField和StrField)
compressThreshold=<integer>
-保证压缩到不小于一个大小
multiValued=true|false
-字段是否可以多个值
omitNorms=true|false
-true 则字段检索时被省略相关的规范
omitTermFreqAndPositions=true|false
-true 省略这一领域的长远频率,位置和有效载荷
<fields>
<field name="user_id" type="string" indexed="true" stored="true" required="true" />
<field name="name" type="string" indexed="true" stored="true" />
<field name="phone" type="string" indexed="false" stored="true" />
<field name="email" type="string" indexed="false" stored="true" />
<field name="image" type="string" indexed="false" stored="true" />
<field name="city_id" type="int" indexed="true" stored="true" />
<field name="address" type="string" index="false" stored="true" />
<field name="created" type="int" index="false" stored="true" />
<field name="all" type="string" index="true" stored="true" />
</fields>
2.dynamicField 动态字段
动态字段,没有具体名称的字段
name为*_i,定义它的type为int,那么在使用这个字段的时候,任务以_i结果的字段都被认为符合这个定义。如name_i, school_i
<dynamicField name="*_i" type="int" indexed="true" stored="true"/>
<dynamicField name="*_s" type="string" indexed="true" stored="true"/>
三、 uniqueKey 设置字段惟一
<uniqueKey>user_id</uniqueKey>
四、默认搜索字段
<defaultSearchField>name</defaultSearchField>
五、默认搜索类型
<solrQueryParser defaultOperator="AND|OR" />
六、copyField 拷贝到另一个字段
<copyField source="name" dest="all"/>
<copyField source="email" dest="all" />
<copyField source="email" dest="all" />
schema.xml 例子:
<?xml version="1.0" encoding="UTF-8" ?>
<schema name="example" version="1.2">
<types>
<fieldType name="int" class="solr.TrieIntField" precisionStep="0" omitNorms="true" positionIncrementGap="0" />
<fieldType name="float" class="solr.TrieFloatField" precisionStep="0" omitNorms="true" positionIncrementGap="0" />
<fieldType name="double" class="solr.TrieDoubleField" precisionStep="0" omitNorms="true" positionIncrementGap="0" />
<fieldType name="string" class="solr.StrField" sortMissingLast="true" omitNorms="true" />
<fieldType name="text" class="solr.TextField" positionIncrementGap="100">
<analyzer>
<tokenizer class="solr.WhitespaceTokenizerFactory" />
</analyzer>
</fieldType>
</types>
<fields>
<field name="user_id" type="string" indexed="true" stored="true" required="true" />
<field name="name" type="string" indexed="true" stored="true" />
<field name="phone" type="string" indexed="false" stored="true" />
<field name="email" type="string" indexed="false" stored="true" multiValued="true" />
<field name="image" type="string" indexed="false" stored="true" />
<field name="city_id" type="int" indexed="true" stored="true" />
<field name="address" type="string" index="false" stored="true" />
<field name="created" type="int" index="false" stored="true" />
<field name="all" type="string" index="true" stored="true" />
<dynamicField name="*_i" type="int" indexed="true" stored="true"/>
<dynamicField name="*_s" type="string" indexed="true" stored="true"/>
</fields>
<uniqueKey>user_id</uniqueKey>
<defaultSearchField>name</defaultSearchField>
<copyField source="name" dest="all" />
<copyField source="phone" dest="all" />
<copyField source="email" dest="all" />
</schema>
相关推荐
### Solrconfig.xml 和 Schema.xml 说明 #### Solrconfig.xml 概述 Solrconfig.xml 是 Apache Solr 的核心配置文件之一,主要用于定义 Solr 实例如何处理文档的索引与查询请求。该文件中包含了多种配置项,用于...
配置文件(如`schema.xml`或`solrconfig.xml`)需要更新以指示Solr使用IKAnalyzer进行分词。JAR库文件(如`ik-analyzer.jar`)则需要添加到Solr的类路径中,以便在运行时能够加载和使用分词器。字典文件通常包含预定...
2. **配置Solr schema.xml**:在Solr的schema.xml配置文件中,为需要分词的字段指定`<analyzer>`标签,使用IKAnalyzer的类名,如`org.wltea.analyzer.lucene.IKAnalyzer`。 3. **启动Solr**:更新完配置后,重启Solr...
在“server/solr/configsets/_default/conf”目录下,找到“schema.xml”文件,打开后找到`<fields>`标签,添加一个字段类型定义,如下: ```xml <fieldType name="text_ik" class="solr.TextField" ...
在Solr搜索服务器中,`schema.xml` 文件扮演着核心配置文件的角色,它定义了索引字段、字段类型以及其他与数据结构相关的设置。正确理解和配置`schema.xml`对于实现高性能的全文检索系统至关重要。 #### 一、Schema...
Solr,作为一款开源的全文搜索引擎,其核心配置文件包括`schema.xml`和`solrconfig.xml`,它们是Solr工作方式的基础。在深入理解这两个文件之前,我们需要先了解Solr的基本架构。 **1. Solr架构简介** Solr采用...
使用这个压缩包,用户可以将IK Analyzer集成到Solr的配置中,通过修改`schema.xml`或`managed-schema`文件,指定使用IK Analyzer作为特定字段的分词器。这通常涉及到在字段类型定义中添加类似以下的配置: ```xml ...
4. 配置字段类型(FieldType)使用IK分析器,在`schema.xml`文件中: ```xml <fieldType name="text_ik" class="solr.TextField" positionIncrementGap="100"> <tokenizer class="org.wltea.analyzer.lucene....
同时,确保替换相关的配置文件,例如`solrconfig.xml`和`schema.xml`。 3. **配置Solr**:在`solrconfig.xml`中配置分词器,指定使用IKAnalyzer,并在`schema.xml`中定义字段类型,指定该字段使用IKAnalyzer进行...
在实际应用中,配置IKAnalyzer与Solr集成时,你需要在Solr的schema.xml或managed-schema文件中定义字段类型,并指定使用IKAnalyzer。例如: ```xml <fieldType name="text_ik" class="solr.TextField" ...
2. **配置Schema**:在Solr的Schema.xml文件中,为需要进行中文分词的字段定义一个Analyzer,指定使用ikanalyzer。例如: ```xml <fieldType name="text_ik" class="solr.TextField" positionIncrementGap="100"> ...
通过继承Analyzer编写自定义类UseSmartIKAnalyzer和NotUseSmartIKAnalyzer,实现智能分词和最细粒度分词,支持solr4.7通过配置schema.xml实现不同的分词效果 <fieldType name="text_ik" class="solr.TextField"> ...
Solr的核心配置文件是`solrconfig.xml`和`schema.xml`,它们定义了索引的结构和处理查询的方式。 当你遇到404错误,首先检查Solr是否成功启动。查看日志文件(通常是`logs/solr.log`)以获取更详细的错误信息。如果...
3. **配置DataImportHandler**:在对应的Solr核心的`schema.xml`或`managed-schema`文件中,配置DataImportHandler,包括数据源、查询语句、字段映射等信息。 4. **启动定时任务**:一旦配置完成,重启Solr服务器,...
打开 `configsets/_default/conf/schema.xml` 文件,找到 `<fields>` 部分,添加一个新的字段类型(fieldType)用于使用 IKAnalyzer,例如: ```xml <fieldType name="text_ik" class="solr.TextField" ...
3. **字段类型定义**:在`schema.xml`文件中,为需要使用IK分词器的字段定义一个特定的类型,比如`text_ik`。配置`<fieldType>`标签,设置`class`为`solr.TextField`,并在`<analyzer>`部分引用之前在`solrconfig....
- 然后,更新 Solr 的 `schema.xml` 文件,定义字段类型,并指定使用 IK 分词器。例如: ```xml <fieldType name="text_ik" class="solr.TextField"> <tokenizer class="org.wltea.analyzer.lucene....
集成IKAnalyzer到Solr的过程中,通常需要修改Solr的配置文件,包括solrconfig.xml和schema.xml。在solrconfig.xml中,需要配置分词器的相关参数,如词典路径等;在schema.xml中,需要定义字段类型(fieldType)并...
2. **schema.xml**: 此文件定义了Solr的字段类型(FieldTypes)和字段(Fields),用于确定如何存储和处理数据。每个字段都有其特定的类型,如字符串、整数或日期,而且可以设置是否可搜索、可分析、可排序等属性。...