我们现在正在进入项目的一个阶段,我们希望在我们的文档中搜索匹配某些字符串的正则表达式。 CouchDB现在允许使用2.0版本和/ db / _find,这很棒。在此之前,您需要使用Elasticsearch。
我想知道一个解决方案是否比另一个解决方案更好,以及磁盘存储方面的后果是什么? 我在CouchDB documentation中看到了很多关于/ bd / _find功能的警告,例如:
正则表达式不适用于索引,因此不应使用它们来过滤大型数据集。
提前感谢你的启蒙
答案 0 :(得分:0)
简单来说,如果您使用带有_find的正则表达式,则会针对您发出的每个查询扫描数据库中的所有文档。这与Elasticsearch完全不同,后者针对自由文本查询进行了优化。
因此,如果您希望在reqex查询中使用良好的性能,请使用Elasticsearch。
完整的图片有点复杂:如果您还有一个可以使用索引的固定部分,您可以优化查询。如果您详细说明您的用例究竟是什么,我可能会进一步提供帮助。