solr schema 修改后会自动重建索引吗
1个回答
展开全部
配置solr字段、
schema.xml 文件里配置
先讲解一下,里面的一些字段
1、 <types> ... </types> 表示类型,数据类型
<fieldType name="string" class="solr.StrField" sortMissingLast="true" omitNorms="true"/> <fieldType name="boolean" class="solr.BoolField" sortMissingLast="true" omitNorms="true"/> <fieldtype name="binary" class="solr.BinaryField"/> <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="long" class="solr.TrieLongField" precisionStep="0" omitNorms="true" positionIncrementGap="0"/> <fieldType name="double" class="solr.TrieDoubleField" precisionStep="0" omitNorms="true" positionIncrementGap="0"/>
不难理解上面就是配置定义solr 数据类型、上面都是solr里面的类型,那么我们也可以配置自已的数据类型,
比如:我们要用到中文分词 的时候,这里配一下IKanalyzer 分词 、并配置它的索引和分词。
<fieldType name="text_cn" class="solr.TextField" positionIncrementGap="100"> <!--<analyzer class="org.wltea.analyzer.lucene.IKAnalyzer"/> --> <analyzer type="index"> <tokenizer class="org.wltea.analyzer.solr.IKTokenizerFactory" isMaxWordLength="false"/> <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" enablePositionIncrements="true" /> <filter class="solr.StandardFilterFactory"/> <filter class="solr.RemoveDuplicatesTokenFilterFactory"/> </analyzer> <analyzer type="query"> <tokenizer class="org.wltea.analyzer.solr.IKTokenizerFactory" isMaxWordLength="true"/> <filter class="solr.StopFilterFactory" ignoreCase="false" words="stopwords.txt" enablePositionIncrements="true" /> <filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/> <filter class="solr.StandardFilterFactory"/> <filter class="solr.RemoveDuplicatesTokenFilterFactory"/> </analyzer> </fieldType>
小解释一下field 里面的一些属性:
name: 字段类型名 class: java类名 indexed: 缺省true。 说明这个数据应被搜索和排序,如果数据没有indexed,则stored应是true。 stored: 缺省true。说明这个字段被包含在搜索结果中是合适的。如果数据没有stored,则indexed应是true。 sortMissingLast: 指没有该指定字段数据的document排在有该指定字段数据的document的后面 sortMissingFirst: 指没有该指定字段数据的document排在有该指定字段数据的document的前面 omitNorms: 字段的长度不影响得分和在索引时不做boost时,设置它为true。一般文本字段不设置为true。 termVectors: 如果字段被用来做more like this 和highlight的特性时应设置为true。 compressed: 字段是压缩的。这可能导致索引和搜索变慢,但会减少存储空间,只有StrField和TextField是可以压缩,这通常适合字段的长度超过200个字符。 multiValued: 字段多于一个值的时候,可设置为true。 positionIncrementGap: 和multiValued 一起使用,设置多个值之间的虚拟空白的数量
schema.xml 文件里配置
先讲解一下,里面的一些字段
1、 <types> ... </types> 表示类型,数据类型
<fieldType name="string" class="solr.StrField" sortMissingLast="true" omitNorms="true"/> <fieldType name="boolean" class="solr.BoolField" sortMissingLast="true" omitNorms="true"/> <fieldtype name="binary" class="solr.BinaryField"/> <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="long" class="solr.TrieLongField" precisionStep="0" omitNorms="true" positionIncrementGap="0"/> <fieldType name="double" class="solr.TrieDoubleField" precisionStep="0" omitNorms="true" positionIncrementGap="0"/>
不难理解上面就是配置定义solr 数据类型、上面都是solr里面的类型,那么我们也可以配置自已的数据类型,
比如:我们要用到中文分词 的时候,这里配一下IKanalyzer 分词 、并配置它的索引和分词。
<fieldType name="text_cn" class="solr.TextField" positionIncrementGap="100"> <!--<analyzer class="org.wltea.analyzer.lucene.IKAnalyzer"/> --> <analyzer type="index"> <tokenizer class="org.wltea.analyzer.solr.IKTokenizerFactory" isMaxWordLength="false"/> <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" enablePositionIncrements="true" /> <filter class="solr.StandardFilterFactory"/> <filter class="solr.RemoveDuplicatesTokenFilterFactory"/> </analyzer> <analyzer type="query"> <tokenizer class="org.wltea.analyzer.solr.IKTokenizerFactory" isMaxWordLength="true"/> <filter class="solr.StopFilterFactory" ignoreCase="false" words="stopwords.txt" enablePositionIncrements="true" /> <filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/> <filter class="solr.StandardFilterFactory"/> <filter class="solr.RemoveDuplicatesTokenFilterFactory"/> </analyzer> </fieldType>
小解释一下field 里面的一些属性:
name: 字段类型名 class: java类名 indexed: 缺省true。 说明这个数据应被搜索和排序,如果数据没有indexed,则stored应是true。 stored: 缺省true。说明这个字段被包含在搜索结果中是合适的。如果数据没有stored,则indexed应是true。 sortMissingLast: 指没有该指定字段数据的document排在有该指定字段数据的document的后面 sortMissingFirst: 指没有该指定字段数据的document排在有该指定字段数据的document的前面 omitNorms: 字段的长度不影响得分和在索引时不做boost时,设置它为true。一般文本字段不设置为true。 termVectors: 如果字段被用来做more like this 和highlight的特性时应设置为true。 compressed: 字段是压缩的。这可能导致索引和搜索变慢,但会减少存储空间,只有StrField和TextField是可以压缩,这通常适合字段的长度超过200个字符。 multiValued: 字段多于一个值的时候,可设置为true。 positionIncrementGap: 和multiValued 一起使用,设置多个值之间的虚拟空白的数量
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询