我的查询有一个字段CONTENTDISPLAYDATE,cfdump将其显示为“2014-10-16 00:00:00.0”。我在cfindex语句中使用contentdisplaydate_dt =“ContentDisplayDate”将它添加到SOLR集合中。 当我从cfsearch结果中反馈结果数据时,该字段显示为“2014年10月16日00:00:00 EDT 2014”,并且对其进行排序不起作用。在结果集上使用查询查询并按顺序排序也不起作用。所以看起来将它分配给SOLR日期字段是行不通的。谁能说清楚我做错了什么?我们使用CF 10附带的默认SOLR版本。
答案 0 :(得分:0)
要做的第一件事是检查以确保字段contentdisplaydate_dt
被定义为Solr中的日期字段。您可以通过查看此特定集合下的文件 schema.xml (通常是 C:\ ColdFusion9 \ collections \ mycollection \ conf \ )来执行此操作。
您还可以通过直接在浏览器中查询Solr索引来确认contentdisplaydate_dt
的内容(使用Solr Web服务):
http://mysolrserver:8983/solr/myindex/select?q=searchterm&fl=contentdisplaydate_dt
(默认情况下,上述URL将返回XML数据;如果您更喜欢JSON,则将&wt=json
添加到URL。)
我的猜测是,正在发生的事情是ColdFusion正在尝试转换Solr日期(总是格式为yyyy-mm-ddThh:mm:ssZ
)并且结果并不漂亮。您必须进行一些操作才能将Solr日期转换为CF识别的日期格式。
最后,我建议您使用Solr的网络服务来索引和搜索您的数据,而不是使用<cfindex>
和<cfsearch>
。使用Solr Web服务进行搜索尤其容易;只需使用<cfhttp>
来调用Web服务,deserializeJSON()
来处理返回的数据(假设您正在返回JSON而不是XML)。