什么是将Cassandra的TimeUUID字段最好映射到Solr的方法。我使用的是DSE 3.2.4版本。
DSE4.5
中的solr可以设置'uuid'为uuid和timeuuid。详情请参阅:http://www.datastax.com/documentation/datastax_enterprise/4.5/datastax_enterprise/srch/srchSolrType.html
timeuuid
映射到Solr类型UUIDField
。我只是想知道你打算如何在solr搜索中使用这个timeUUID。TimeUUID是一系列大数字。
请尝试以下方法:
例如: UUID: 118ffe80-466b-11e1-b5a5-5732cf729524 代表时间(2012年1月24日上午9:09:06 GMT)。 可以通过Jan-24,2012来进行搜索,而不是使用UUID。
在Solr的dataconfig.xml文件中,你可以编写JavaScript代码将时间UUID转换为实际日期,并为该字段创建索引。
示例: 从下面的代码中获取时间详细信息
< dataConfig>
< script> < ![CDATA[
function f1(row) {
var uuid= row.get('timeUUID');
//Java Script to convert UUID to Date
row.put('timeUUID', uuid);
return row;
}
]] > < /script>
< document>
< entity name="e" transformer="script:f1" query="select * from X">
....
< /entity>
< /document>
提示:
您可以使用脚本创建任何额外的字段。例如:年份、日期、月份等。TimeUUID是一个包含时间信息的UUID。在Solr中,没有适当的映射来处理这种类型的数据。
我的建议如下:
这样,你就可以在TimeUUID和从中提取出来的时间信息之间建立映射关系了。
TimeUUID 没有映射。您可以在此处查看完整的映射列表:
http://www.datastax.com/documentation/datastax_enterprise/3.2/datastax_enterprise/srch/srchConf.html#srchConf__srchSolrType
UUIDField
类型的字段进行排序,但我不知道它如何进行时间排序,因为UUIDField
是一个类型4的UUID。如果你想要这样做,也许可以尝试使用CQL的timestamp
,它映射到Solr的DateField
。 - Caleb Rackliffe