使用temporary view传递map / reduce,以便在它们出现时进行这些查找(查询)。
文档告诉我这是一个可怕的想法。
为什么这是一个糟糕的主意? 它真的是一个可怕的想法吗?
如果一个好主意是一个可怕的想法?每个组合的视图都是愚蠢的许多视图,并将整堆数据加载到另一个程序中为此感觉有点过分(我注意到lucene有一些工具用于此,如果必须,我可以烹饪一个节点)。如果必须的话,我可以转移到这样的工具,我只是还不明白为什么。
答案 0 :(得分:3)
临时视图仅供开发使用,因为每次调用它们时都会强制重建整个视图索引,并且它们的结果不像典型视图那样保存。对于数据库中的文档越多,这将受到更大的惩罚,如果您尝试将其用作动态查询系统,它会很快地咬你。 (来源v1.6.1 documentation)事实上,临时视图完全从v2中删除。 (来源v2.0.0 upgrade notes)
我不确定您运行的是哪个版本的CouchDB,但是如果您使用的是v1并且您想在此处执行高度动态的查询,那么您可能会更好地使用某种全文索引器,例如apache lucene或弹性搜索。除了同时支持多个参数外,它们还将为您的搜索增添许多灵活性。
如果您使用的是CouchDB v2,您还可以考虑使用新的Mango Query Server,它为查询文档添加了mongodb样式的语法。使用此功能,您绝对可以包含多个参数并进行更多动态搜索。