1
|
<
dynamicField
name
=
"*_i"
type
=
"sint"
indexed
=
"true"
stored
=
"true"
/>
|
建议在 schema.xml 定义一些基本的动态字段,以备扩展之用。
2.
你可能想让document的一些字段可以多次使用。solr 有一个字段复制机制,可以提交多个不同类型字段集中到一个字段。字段复制主要涉及两个概念,source和destination,一个是要复制的字段,另一个是要复制到哪个字段,以下是个例子:
1
|
<
copyField
source
=
"cat"
dest
=
"text"
maxChars
=
"30000"
/>
|
上例中,如果text字段有数据的话,cat字段的内容将被添加到text字段中。maxChars 参数,一个int类型参数,用于限制复制的字符数。
1
|
<
copyField
source
=
"*_t"
dest
=
"text"
maxChars
=
"25000"
/>
|
3.
一旦定义好了字段类型,定义一个字段就变得比较简单了。所有该做的就是指定一个名称和一个字段类型。如果你愿意,可以提供可选的内容用于替换字段类型中的定义的属性。
1
|
<
field
name
=
"price"
type
=
"sfloat"
indexed
=
"true"
stored
=
"true"
/>
|
4.
<fieldType name=”date” sortMissingLast=”true” omitNorms=”true”/> |
大部分的属性是 true 或 false。
这里是一些常用的属性:
字段属性 |
描述 |
值 |
indexed |
如果为true,该字段可以被搜索 |
True 或 false |
stored |
如果为true,该字段可以值将被保存在索引库 |
True或 false |
sortMissingFirst sortMissingLast |
X暂时不太理解 |
True或 false |
multiValued |
如果为true,该字段可以保存多个值 |
True或 false |
positionIncrementGap |
用于多值字段,表示多个值之间的距离,防止错误的短语匹配 |
整数 |
omitNorms |
如果为true,忽略该字段的norms,只有全文字段或者字段在索引时设置boost需要norms。 |
True或 false |
omitTermFreqAndPositions |
True或 false |
|
autoGeneratePhraseQueries |