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 |