CouchDB - 使用参数查询

时间:2009-08-13 10:18:29

标签: couchdb

我是CouchDB的新手,我知道我的心态在关系数据库领域可能仍然太多,但是这里有:

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

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

据我所知,我可以在查询旁边使用lucene来对结果进行全文搜索,但这只对文本内容而非数字非常有用。

我很高兴创建一系列静态视图,因为它们可以非常简单地动态创建。我担心的是,这不是Couch应该如何使用的,而是我错过了一些东西。随意赐教。

干杯,克里斯。

1 个答案:

答案 0 :(得分:3)

视图接受url参数,key是你正在寻找的那个。您甚至可以限制获得的行数和排序。

您的视图可以通过任意JSON密钥编制索引。这意味着您可以创建一个发出类似文档的视图,[username docid] =>文档。然后,您可以使用http://url/to/view?key=[username docid]查询此视图。

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

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

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