我收到Hyperledger Fabric CouchDB索引未找到错误...
2023-09-17 23:48:58.084 UTC [chaincode] HandleTransaction -> ERRO 051 [ce5a14fc] Failed to handle GET_QUERY_RESULT. error: error handling CouchDB request. Error:no_usable_index, Status Code:400, Reason:No index exists for this sort, try indexing by the sort fields.
我使用Java链码:
QueryResultsIterator<KeyValue> results = stub
.getQueryResult("{\"selector\":{\"$not\":{\"createdDate\":null}},\"sort\":[{\"createdDate\":\"desc\"}],\"use_index\":\"createdDateIndexDoc\"}");
该查询将返回按createdDate倒序排序的所有条目。这就是为什么我添加选择器not null。(顺便说一句,选择器是强制性的...我能忽略它吗?)
我在META-INF/statedb/couchdb/indexCreatedDateDesc.json中的索引文件是
{
"index": {
"fields": [{"createdDate": "desc"}]
},
"name" : "createdDateIndex",
"ddoc" : "createdDateIndexDoc",
"type" : "json"
}
(Note:我正在查看peer日志,couchdb日志和运行chaincode日志的docker,但我没有看到任何确认索引已安装在CouchDB数据库中的信息。我应该在哪个日志中查找该条目以确保索引已部署?)
1条答案
按热度按时间polkgigr1#
我很确定它应该在CouchDB日志中。
我通常使用Fauxton UI。(couchdb-url:port/_utils)
路径应为META-INF/statedb/couchdb/indexes
https://hyperledger-fabric.readthedocs.io/en/release-2.2/couchdb_tutorial.html#cdb-add-index
查询需要选择器语句。查询中的排序需要索引。
https://docs.couchdb.org/en/stable/api/database/find.html#sort-syntax