SOLR:是否可以为每个文档索引多个时间戳:值对?

时间:2011-09-28 14:23:20

标签: solr date-range multivalue

在solr中是否可以为单个文档索引键值对,例如:


文件编号:100

2011-05-01,20

2011-08-23,200

2011-08-30,1000


文件编号:200

2011-04-23,10

2011-04-24,100


然后查询在特定时间范围内具有特定值聚合的文档,即“在2011-08-01和2011-09-01之间给我带有和(值)> 0的文档”将返回文档上面的示例数据中的ID为100。

1 个答案:

答案 0 :(得分:0)

以下是来自Solr User Mailing List的帖子,其中讨论了将字段作为键/值对处理的几种方法。

  

1)在字段值中编码“id”和“label”;面对它;   要求客户知道如何解码。这非常适合简单   id =>标签映射的东西永远不会改变,并且是   易于编码(即“01234:Chris Hostetter”)。这是一种可怕的方法   当id =>标签映射确实随任何频率发生变化。

     

2)有一个单独的“元数据”文档,每个“东西”一个   正在包含id和标签的字段(可能是一个   doc_type字段,以便您可以将其与主要文档区分开来)   你已经完成了你的主要查询,并将结果重新修改为id,   您可以查询这些ID以获取相应的标签。这很有效   如果标签发生变化,那就太好了(只需重新编制相应的索引   元数据文档)并有额外的奖励,您可以存储额外的   每个文档中的元数据,以及用于呈现的每个用例   最初的“浏览”界面,你有时可以侥幸逃脱   搜索所有元数据文档(或满足某些元数据文档的所有元数据文档)   标准)而不是所有主要的昂贵的facet查询   文档。