现在,我们的项目已进入阶段,我们希望使用匹配某些字符串的正则表达式在文档中进行搜索。 CouchDB现在确实允许使用2.0版本和/ db / _find,这很棒。在此之前,您需要使用Elasticsearch。
我想知道一种解决方案是否比另一种更好,磁盘存储的后果又如何呢?
我在CouchDB documentation中看到了很多有关/ bd / _find功能的警告,例如:
Regular expressions do not work with indexes, so they should not be used to filter large data sets.
预先感谢您的启迪
最佳答案
简而言之,如果对_find使用正则表达式,则将针对您发出的每个查询扫描数据库中的所有文档。这与针对自由文本查询进行了优化的Elasticsearch完全不同。
因此,如果您想对reqex查询使用良好的性能,请使用Elasticsearch。
完整的外观稍微复杂一点:如果您还有一个可以使用索引的固定部分,则可以优化查询。如果您详细说明您的用例是什么,我也许可以提供进一步的帮助。
关于elasticsearch - 当CouchDB 2.0具有/db/_find时,为什么将Elasticsearch与CouchDB一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43114553/