如何使用搜索索引在 Cloudant 中进行搜索
How to search in Cloudant by using Search Index
抱歉新手问题。
我正在尝试使用示例代码查询 Cloudant 数据库(取自官方 gitHub cloudant 存储库):
To query using the index, use the `.find()` method.
~~~ js
db.find({selector:{name:'Alice'}}, function(er, result) {
if (er) {
throw er;
}
console.log('Found %d documents with name Alice', result.docs.length);
for (var i = 0; i < result.docs.length; i++) {
console.log(' Doc id: %s', result.docs[i]._id);
}
});
~~~
我需要搜索数据库中的所有文档并提高此查询性能,我创建了搜索索引(尤其是字段 "name")。但是我要如何在代码中定义我要使用的索引,如果有的话我要使用哪一个?
支持 .find()
方法的 _find
API 端点将自动使用索引,如果可以。有时,它不能——通常是因为实际查询实际上与索引不匹配。值得查看 Cloudant Query 的文档以更好地理解此机制。
可以通过参数 use_index
指定查询使用的实际索引——但我没有检查这是否在 node.js 客户端中实现,但在大多数情况下在某些情况下没有必要。
还有另一个有用的 API 端点称为 _explain,它将向您显示找到的索引,或者查询是否回退到完整的数据库扫描(您希望避免!)。
请注意,当您使用 _find
(.find()
) 时,您实际上使用的是 Cloudant Query,而不是 Cloudant Search。区别很重要,因为 Cloudant Search 是一种不同的查询机制。
抱歉新手问题。 我正在尝试使用示例代码查询 Cloudant 数据库(取自官方 gitHub cloudant 存储库):
To query using the index, use the `.find()` method.
~~~ js
db.find({selector:{name:'Alice'}}, function(er, result) {
if (er) {
throw er;
}
console.log('Found %d documents with name Alice', result.docs.length);
for (var i = 0; i < result.docs.length; i++) {
console.log(' Doc id: %s', result.docs[i]._id);
}
});
~~~
我需要搜索数据库中的所有文档并提高此查询性能,我创建了搜索索引(尤其是字段 "name")。但是我要如何在代码中定义我要使用的索引,如果有的话我要使用哪一个?
支持 .find()
方法的 _find
API 端点将自动使用索引,如果可以。有时,它不能——通常是因为实际查询实际上与索引不匹配。值得查看 Cloudant Query 的文档以更好地理解此机制。
可以通过参数 use_index
指定查询使用的实际索引——但我没有检查这是否在 node.js 客户端中实现,但在大多数情况下在某些情况下没有必要。
还有另一个有用的 API 端点称为 _explain,它将向您显示找到的索引,或者查询是否回退到完整的数据库扫描(您希望避免!)。
请注意,当您使用 _find
(.find()
) 时,您实际上使用的是 Cloudant Query,而不是 Cloudant Search。区别很重要,因为 Cloudant Search 是一种不同的查询机制。