找不到Hyperledger Fabric CouchDB索引

fcipmucu  于 2023-09-28  发布在  CouchDB
关注(0)|答案(1)|浏览(212)

我收到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数据库中的信息。我应该在哪个日志中查找该条目以确保索引已部署?)

polkgigr

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

相关问题