2

我是 CouchDB 的新手,我知道我的思维方式在关系数据库领域可能仍然太多,但这里是:

似乎在 Couch 上的查询都是通过 Views 完成的。我读到临时视图效率非常低,应该在生产中避免。

所以我的问题实际上是如何使用参数进行有效查询(因为视图不接受它们)。例如,如果我要使用 Couch 为博客网站提供动力,我是否必须为每个帖子创建一个新视图,相当于“从 id=1 的帖子中选择帖子”。

我知道我可以在查询的同时使用 lucene 对结果进行全文搜索,但这仅对文本内容而不是数字真正有用。

我很高兴创建大量静态视图,因为它们可以非常简单地动态创建。我担心这不是 Couch 应该被使用的方式,我错过了一些东西。随意启发我。

干杯,克里斯。

4

1 回答 1

3

视图确实接受 url 参数,关键是您正在寻找的参数。您甚至可以限制获得的行数并进行排序。

您的视图可以由任意 JSON 键索引。这意味着您可以创建一个像这样发出文档的视图,[username docid] => doc。然后您可以使用 查询此视图http://url/to/view?key=[username docid]

您可以创建一个发出 [用户名类型日期] => doc 的视图。现在您可以获取某个日期之间某个特定的所有文档(使用 startKey 和 endKey url 参数)。

您的博客示例是 CouchDB 特别适合的示例。事实上,我相信这是 O'reilly 即将出版的 CouchDB 书中的一个例子。

也就是说,某些类型的查询并不能单独由 CouchDB 轻松处理。couchdb-lucene 可以在这里提供帮助。不要以为它只适用于全文搜索。我一直在使用它对数据库运行一般复杂的查询,效果很好。

于 2009-08-13T21:44:01.070 回答