在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。
答案 0 :(得分:0)
以下是来自Solr User Mailing List的帖子,其中讨论了将字段作为键/值对处理的几种方法。
1)在字段值中编码“id”和“label”;面对它; 要求客户知道如何解码。这非常适合简单 id =>标签映射的东西永远不会改变,并且是 易于编码(即“01234:Chris Hostetter”)。这是一种可怕的方法 当id =>标签映射确实随任何频率发生变化。
2)有一个单独的“元数据”文档,每个“东西”一个 正在包含id和标签的字段(可能是一个 doc_type字段,以便您可以将其与主要文档区分开来) 你已经完成了你的主要查询,并将结果重新修改为id, 您可以查询这些ID以获取相应的标签。这很有效 如果标签发生变化,那就太好了(只需重新编制相应的索引 元数据文档)并有额外的奖励,您可以存储额外的 每个文档中的元数据,以及用于呈现的每个用例 最初的“浏览”界面,你有时可以侥幸逃脱 搜索所有元数据文档(或满足某些元数据文档的所有元数据文档) 标准)而不是所有主要的昂贵的facet查询 文档。