Cassandra TimeUUID字段的Solr映射

时间:2014-02-20 05:58:54

标签: solr cassandra datastax timeuuid

Cassandra TimeUUID 字段对Solr的最佳映射是什么?我使用的是DSE 3.2.4版本

5 个答案:

答案 0 :(得分:3)

如果您有任何升级计划,DSE4.5有solr,允许将uuid和timeuuid设置为“uuid'”。 http://www.datastax.com/documentation/datastax_enterprise/4.5/datastax_enterprise/srch/srchSolrType.html

答案 1 :(得分:1)

从DSE版本3.2.6开始,CQL类型timeuuid映射到Solr类型UUIDField

请参阅:http://www.datastax.com/documentation/datastax_enterprise/3.2/datastax_enterprise/srch/srchSolrType.html

答案 2 :(得分:0)

TimeUUID 是包含嵌入其中的时间的UUID。在Solr中,没有适当的此类数据映射。

我可以建议你

  1. 将TimeUUID保存在字段中(例如“字符串”类型)。
  2. 并将相应的时间保留在同一文档中的另一个字段(“日期”类型)。
  3. 这样,您可以在TimeUUID和从中提取的时间之间建立映射。

答案 3 :(得分:0)

答案 4 :(得分:0)

我想知道如何在solr搜索中使用此timeUUID。 TimeUUID是一系列大数字。

请尝试以下方法:

例如: UUID:118ffe80-466b-11e1-b5a5-5732cf729524当时(2012年1月24日,星期二,格林尼治标准时间上午9:09:06)。 在2012年1月24日之前搜索很容易,而不是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>

提示: 您可以使用脚本创建任何额外的字段。例如:年,日,月等。