1

现在,我们的项目正处于一个阶段,我们希望使用匹配某些字符串的正则表达式在文档中进行搜索。CouchDB 现在确实允许在 2.0 版本和 /db/_find 中使用它,这很棒。在此之前,您需要使用 Elasticsearch。

我想知道一种解决方案是否比另一种更好,以及对磁盘存储有什么影响?我在CouchDB 文档中看到了很多关于 /bd/_find 功能的警告,例如:

正则表达式不适用于索引,因此它们不应用于过滤大型数据集。

提前感谢您的启发

4

1 回答 1

0

简单地说,如果您使用带有 _find 的正则表达式,那么您发出的每个查询都会扫描您数据库中的所有文档。这与针对自由文本查询进行优化的 Elasticsearch 完全不同。

因此,如果您想在 reqex 查询中使用良好的性能,请使用 Elasticsearch。

完整的图片有点复杂:如果你还有一个可以使用索引的固定部分,你可以优化你的查询。如果您详细说明您的用例到底是什么,我可能会提供进一步的帮助。

于 2017-04-05T17:03:01.393 回答