如何使用搜索索引在Cloudant中搜索

时间:2018-09-27 00:54:18

标签: node.js cloudant

对新手问题表示抱歉。 我正在尝试使用示例代码(从官方gitHub cloudant存储库中获取)查询Cloudant数据库:

let randomItem = Int(arc4random() % UInt32(animalNames.count))
let randomFileName = animalImages[randomItem]
let randomImage = UIImage(named: randomFileName)

Image.image = randomImage

我需要搜索数据库中的所有文档,并且为了提高查询性能,我创建了搜索索引(特别是字段“名称”)。但是,如何在代码中定义要使用索引的索引,以及有没有索引?

1 个答案:

答案 0 :(得分:0)

支持_find方法的.find() API端点将自动使用索引,如果可以的话 。有时,它不能-通常是因为实际查询实际上与索引不匹配。值得回顾Cloudant Query的文档以更好地了解此机制。

可以通过参数use_index指定要使用的查询的实际索引-但我尚未检查是否在node.js客户端中实现了该索引,但在大多数情况下,不应没必要。

还有一个称为_explain的有用的API端点,它将向您显示找到的索引,或者查询是否回退到完整的数据库扫描(您要避免!)。

请注意,当您使用_find.find())时,实际上使用的是Cloudant Query,而不是Cloudant Search。区别很重要,因为Cloudant搜索是一种不同的查询机制。