读书人

solr 字段配备和数据库数据索引配置

发布时间: 2012-08-13 13:21:53 作者: rapoo

solr 字段配置,和数据库数据索引配置

配置solr字段、

?

schema.xml 文件里配置

?

先讲解一下,里面的一些字段

?

1、<types> ...? </types> 表示类型,数据类型

?

<fieldType name="string" sortMissingLast="true" omitNorms="true"/><fieldType name="boolean" sortMissingLast="true" omitNorms="true"/><fieldtype name="binary" precisionStep="0" omitNorms="true" positionIncrementGap="0"/><fieldType name="float" precisionStep="0" omitNorms="true" positionIncrementGap="0"/><fieldType name="long" precisionStep="0" omitNorms="true" positionIncrementGap="0"/><fieldType name="double" precisionStep="0" omitNorms="true" positionIncrementGap="0"/>
?

不难理解上面就是配置定义solr? 数据类型、上面都是solr里面的类型,那么我们也可以配置自已的数据类型,

比如:我们要用到中文分词的时候,这里配一下IKanalyzer 分词 、并配置它的索引和分词。

<fieldType name="text_cn" positionIncrementGap="100">    <!--<analyzer isMaxWordLength="false"/>             <filter ignoreCase="true" words="stopwords.txt" enablePositionIncrements="true" />             <filter isMaxWordLength="true"/>             <filter ignoreCase="false" words="stopwords.txt" enablePositionIncrements="true" />             <filter synonyms="synonyms.txt" ignoreCase="true" expand="true"/>             <filter name="code">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一起使用,设置多个值之间的虚拟空白的数量 

?

?

2、<fields> ... </fields> 配的是文档字段

   <field name="id" type="string" indexed="true" stored="true" required="true" />    <field name="sku" type="text_en_splitting_tight" indexed="true" stored="true" omitNorms="true"/>   <field name="name" type="text_general" indexed="true" stored="true"/>   <field name="alphaNameSort" type="alphaOnlySort" indexed="true" stored="false"/>   <field name="manu" type="text_general" indexed="true" stored="true" omitNorms="true"/>

name:字段的名字。 ?
type:字段的类型。 ?
default:一般用来记录索引的时间。 ?
required:设置为true时,当字段没有值,则solr会索引文档失败。

multiValued:是否多值

termVectors

termPositions

termOffsets

?

?

动态字段:

   <dynamicField name="*_i"  type="int"    indexed="true"  stored="true"/>   <dynamicField name="*_s"  type="string"  indexed="true"  stored="true"/>   <dynamicField name="*_l"  type="long"   indexed="true"  stored="true"/>   <dynamicField name="*_t"  type="text_general"    indexed="true"  stored="true"/>

?文档的动态字段、

添加文档时,字段以_i结尾的将将被solr收录 、、solr支持通配符 *

?

唯一key? 必须为string

<uniqueKey>id</uniqueKey>

?默认搜索字段

<defaultSearchField>text</defaultSearchField>

SolrQueryParser 默认处理

<solrQueryParser defaultOperator="OR"/>
?

copyField

<copyField source="cat" dest="text"/><copyField source="name" dest="text"/><copyField source="manu" dest="text"/><copyField source="features" dest="text"/><copyField source="includes" dest="text"/><copyField source="manu" dest="manu_exact"/>
?

字段cat是文章的标题,字段text是文章的摘要,

字段ta是文章标题和摘要的联合。添加索引文档时,只需要传入cattext字段的内容,solr会自动索引ta字段。

?

?

网上找了一个 solr 索引数据库的文章

http://blog.csdn.net/christophe2008/article/details/6299225

?

利用SOLR从数据库创建索引

?

读书人网 >其他数据库

热点推荐