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

发布于 2024-12-07 03:58:04 字数 329 浏览 2 评论 0原文

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


Document ID: 100

2011-05-01,20

2011-08-23,200

2011-08-30,1000


Document ID: 200

201-04-23 ,10

2011-04-24,100


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

Is it possible in solr to index key-value pairs for a single document, like:


Document ID: 100

2011-05-01,20

2011-08-23,200

2011-08-30,1000


Document ID: 200

2011-04-23,10

2011-04-24,100


and then querying for documents with a specific value aggregation in a specific time range, i.e. "give me documents with sum(value) > 0 between 2011-08-01 and 2011-09-01" would return the document with id 100 in the example data above.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

故事未完 2024-12-14 03:58:04

这是来自 Solr 用户邮件列表,其中讨论了将字段作为键/值对处理的几种方法。

1) 对字段值中的“id”和“label”进行编码;其上有刻面;
要求客户知道如何解码。这对于简单的工作来说非常有效
id=>label 映射永远不会改变的东西,并且是
易于编码(即“01234:Chris Hostetter”)。这是一个可怕的方法
当 id=>label 映射确实随任何频率变化时。

2) 有一个单独类型的“元数据”文档,每个“事物”都有一个
正在分面包含 id 和标签的字段(可能还有
doc_type 字段,以便您可以将其与主要文档区分开)然后一次
你已经完成了主要查询并在 id 上得到了结果,
您可以查询这些 id 来获取相应的标签。这有效
如果标签发生变化就很好(只需重新索引相应的
元数据文档)并具有额外的好处,您可以存储额外的
每个文档中的元数据,以及在许多用例中用于呈现
最初的“浏览”界面,有时你可以用便宜的价格逃脱
搜索所有元数据文档(或满足特定条件的所有元数据文档)
标准),而不是在所有主要方面进行昂贵的方面查询
文件。

Here is a post from the Solr User Mailing List where a couple of approaches for dealing with fields as key/value pairs are discussed.

1) encode the "id" and the "label" in the field value; facet on it;
require clients to know how to decode. This works really well for simple
things where the the id=>label mappings don't ever change, and are
easy to encode (ie "01234:Chris Hostetter"). This is a horrible approach
when id=>label mappings do change with any frequency.

2) have a seperate type of "metadata" document, one per "thing" that you
are faceting on containing fields for id and the label (and probably a
doc_type field so you can tell it apart from your main docs) then once
you've done your main query and gotten the results back facetied on id,
you can query for those ids to get the corrisponding labels. this works
realy well if the labels ever change (just reindex the corrisponding
metadata document) and has the added bonus that you can store additional
metadata in each of those docs, and in many use cases for presenting an
initial "browse" interface, you can sometimes get away with a cheap
search for all metadata docs (or all metadata docs meeting a certain
criteria) instead of an expensive facet query across all of your main
documents.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文