elasticsearch 当CouchDB 2.0具有/db/\u find时,为什么要将Elasticsearch与CouchDB一起使用?,elasticsearch,couchdb,couchdb-2.0,elasticsearch,Couchdb,Couchdb 2.0" /> elasticsearch 当CouchDB 2.0具有/db/\u find时,为什么要将Elasticsearch与CouchDB一起使用?,elasticsearch,couchdb,couchdb-2.0,elasticsearch,Couchdb,Couchdb 2.0" />

elasticsearch 当CouchDB 2.0具有/db/\u find时,为什么要将Elasticsearch与CouchDB一起使用?

elasticsearch 当CouchDB 2.0具有/db/\u find时,为什么要将Elasticsearch与CouchDB一起使用?,elasticsearch,couchdb,couchdb-2.0,elasticsearch,Couchdb,Couchdb 2.0,我们现在正进入项目的一个阶段,我们希望使用匹配某些字符串的正则表达式在文档中搜索。CouchDB现在允许它使用2.0版本和/db/\u find,这非常好。在此之前,您需要使用Elasticsearch 我想知道一种解决方案是否比另一种更好,以及在磁盘存储方面会产生什么后果? 我看到了很多关于/bd/_find特性的警告,例如: 正则表达式不使用索引,因此不应使用它们来过滤大型数据集 提前感谢您的启发简单地说,如果您将正则表达式与_find一起使用,您发出的每个查询都会扫描数据库中的所有文档。这

我们现在正进入项目的一个阶段,我们希望使用匹配某些字符串的正则表达式在文档中搜索。CouchDB现在允许它使用2.0版本和/db/\u find,这非常好。在此之前,您需要使用Elasticsearch

我想知道一种解决方案是否比另一种更好,以及在磁盘存储方面会产生什么后果? 我看到了很多关于/bd/_find特性的警告,例如:

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


提前感谢您的启发

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

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


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

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

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


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

Cloudant实际上提供了一个模块,为Lucene上运行的CouchDB提供全文搜索索引。在CouchDB 2.0版本中默认情况下不启用它,但添加也不难。Cloudant在生产中运行它。但这让问题稍微复杂了一点:Dreyfus/Clouseau与Elasticsearch相比如何?还有couchdb lucene,已经上市多年了。虽然存在差异,但最终问题的答案是相同的:使用全文引擎进行全文查询,使用CouchDb进行更简单、结构化的查询。在couchdb 2.0上比较couchdb lucene和Clouseau也是一个不错的线程。实际上,Cloudant提供了一个模块,为在lucene上运行的couchdb提供全文搜索索引。在CouchDB 2.0版本中默认情况下不启用它,但添加也不难。Cloudant在生产中运行它。但这让问题稍微复杂了一点:Dreyfus/Clouseau与Elasticsearch相比如何?还有couchdb lucene,已经上市多年了。虽然存在差异,但最终问题的答案是相同的:使用全文引擎进行全文查询,使用CouchDb进行更简单、结构化的查询。在couchdb 2.0上比较couchdb lucene和Clouseau也是一个不错的线程