Adobe 对 ColdFusion 10 中的 Solr 实施进行了改进,使其不再具有cfindex
以前版本的 ColdFusion 所具有的自定义字段限制。即 - custom1、custom2、custom3 和 custom4。像往常一样,标签的在线文档只是从以前的版本中继承而来,所以有点混乱。
有关更多信息,请参阅此文档 - ColdFusion 10 中的 Solr 增强功能。
从存储您的自定义数据部分下的该文档中:
ColdFusion 9 的变体
- ColdFusion 9 对自定义字段(即 custom1、custom2、custom3 和 custom4)的支持有限。在 ColdFusion 10 中,自定义字段是动态的。
- 在 ColdFusion 9 中,会显示所有自定义字段。在 ColdFusion 10 中,cfdump 仅生成具有数据{{}} 的字段。也就是说,如果您仅指定了自定义 1 和自定义 2,则仅显示这两个字段。
考虑以下代码:
<cfsearch criteria='some_criteria and column_i: [ 10 - 20 ]'...>
这里,some_criteria
表示过滤。例如column_i: [ 10 - 20 ]
表示搜索所有值在 10 到 20 之间的项目column_i
。是用户在索引时提供的自定义字段。此选项在 ColdFusion 9 中可用,但仅限于四个自定义字段。在 ColdFusion 10 中,选项是无限的。
在 ColdFusion 10 中,您可以对必须返回的搜索结果进行排序。
注意:当您在 Solr 集合中搜索字段类型字符串时,条件应在引号内,例如 criteria='string_s:"something missing"'
要指定自定义字段,请使用以下语法:
<cfindex ...
datefield_dt=#date1#
column_i=#secondaryColumn#
body=#primaryColumn#
....../>
注意 自定义字段只能包含小写字符。
在代码中,_i 代表整数自定义数据,其值被存储和索引。任何以 _i 结尾的字段名称都被视为 Solr 整数。同样,_s 代表字符串自定义数据。
所有支持的数据类型都列在 schema.xml 中:
<dynamicfield name="*_i" type="sint" indexed="true" stored="true"/>
<dynamicfield name="*_s" type="string" indexed="true" stored="true"/>
<dynamicfield name="*_l" type="slong" indexed="true" stored="true"/>
<dynamicfield name="*_t" type="text" indexed="true" stored="true"/>
<dynamicfield name="*_b" type="boolean" indexed="true" stored="true"/>
<dynamicfield name="*_f" type="sfloat" indexed="true" stored="true"/>
<dynamicfield name="*_d" type="sdouble" indexed="true" stored="true"/>
<dynamicfield name="*_dt" type="date" indexed="true" stored="true"/>
<dynamicfield name="random*" type="random"/>
注意:_dt
仅支持 ColdFusion 支持的日期格式。