gpt4 book ai didi

couchdb - 将 _find 查询与 use_index 结合使用时出现问题

转载 作者:行者123 更新时间:2023-12-02 20:53:57 25 4
gpt4 key购买 nike

我正在尝试在 CouchDB 2.x 中使用类似 MongoDB 的 _find 查询:
http://docs.couchdb.org/en/2.1.0/api/database/find.html

通过以下内容,我收到一条警告,指示我应该使用索引。

curl -k -X POST "$COUCHDB_HOST/vacation-at-ibm/_find" \
> -H "Content-Type: application/json" \
> -w "\nhttp_code=%{http_code}\n" \
> --data-binary '
> {
> "selector": {
> "ownerId": {"$eq": "1A4061897"}
> }
> }
> '

{"warning":"no matching index found, create an index to optimize query time",

"docs":[
{...}
http_code=200

但是当我添加 use_index 选项时,我收到一条错误,指出它找不到我的索引:

curl -k -X POST "$COUCHDB_HOST/vacation-at-ibm/_find" \
> -H "Content-Type: application/json" \
> -w "\nhttp_code=%{http_code}\n" \
> --data-binary '
> {
> "use_index": [
> "_design/EventDocument",
> "events-by-ownerId"
> ],
> "selector": {
> "ownerId": {"$eq": "1A4061897"}
> }
> }
> '
{"error":"unknown_error","reason":"Unknown Error: mango_idx :: {no_usable_index,no_index_matching_name}"}

我假设我应该指定设计文档键和 View 名称。但这只是一个猜测,因为我完全没有发现关于 use_index 选项的有用文档。没有实际尝试使用它的例子。这是我的设计文档:

{
"_id": "_design/EventDocument",
"_rev": "1-115570169dec7d32845c3b7c6e6978fe",
"language": "javascript",
"views": {
"events-by-ownerId": {
"map": "function(doc) { if (doc.docType == 'event' && doc.ownerId) { var firstDate = null; if (doc.date) { firstDate = doc.date; } emit([doc.ownerId, firstDate], doc); }}"
}
}
}

有人知道如何使用这个选项吗?我是否在设计文档和索引中使用了错误的值?

最佳答案

因此,当他们说“创建索引”时,他们指的是 /db/_index端点。

您需要通过此过程创建索引。您可以指定要存储索引的位置,否则,CouchDB 将创建一个设计文档并将索引存储在其中。

关于couchdb - 将 _find 查询与 use_index 结合使用时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46187218/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com