是否有一种方法可以为具有超级分类帐结构的couchDB中的不同合约设置不同的索引

izkcnapc  于 2022-12-09  发布在  CouchDB
关注(0)|答案(2)|浏览(167)

我使用的是带有CouchDB 2.3.1和2合约的超级账本结构1.4,但是我在合约中设置索引时遇到了麻烦,并且不知道如何将索引上传到CouchDB。
这些是我的索引:
META-INF/statedb/couchdb/indexes/carIndex.json

{
    "index": {
        "fields": [
            "idCar",
            "date"
        ]
    },
    "ddoc": "indexIdCarDoc",
    "name": "indexIdCar",
    "type": "json"
}

META-INF/statedb/couchdb/indexes/bikeIndex.json

{
    "index": {
        "fields": [
            "idBike",
            "date"
        ]
    },
    "ddoc": "indexIdBikeDoc",
    "name": "indexIdBike",
    "type": "json"
}

我如何告诉超级账本为mychannel_carchaincode表设置第一个索引,为mychannel_bikechaincode表设置第二个索引?
另外,我的链码是用typescript写的,我的META-INF/statedb/couchdb/indexes文件夹应该在dist文件夹中吗?这就是为什么我在升级后看不到couchdb中的索引吗?或者索引只能在示例化时上传?
谢谢

p8ekf7hl

p8ekf7hl1#

我也遇到了同样的问题。我的版本是1.4.7的超级账本,我使用的是IBM Blockchain Extesion的VS代码。当我把这个文件夹放在我的项目的lib文件夹中时,我就解决了这个问题。
lib/META-INF/statedb/couchdb/indexes/index.json
升级智能合约后,为了确保工作正常,请转到终端并使用以下Docker命令:
docker logs 39f4adec6057 2>&1 | grep "CouchDB index",其中39 f4 adec 6057是对等容器
如果工作,则显示如下内容:
[couchdb]创建索引-〉信息0 fc使用设计文档[_design/tipoAtivoDoc]在状态数据库[mychannel_integra-chaincode]中创建CouchDB索引[tipoAtivo]
如果您使用Typescript,将编译以下代码:请确保此文件夹将被复制到dist文件夹。为此,您可以在包JSON中添加一个postbuild "postbuild": "cp -av ./META-INF dist/lib/META-INF",

pxy2qtax

pxy2qtax2#

当你给予chaincode命令时,你必须使用“use_index”参数,并且必须告诉chaincode它将使用什么索引来执行这个命令。
链接和示例:https://hyperledger-fabric.readthedocs.io/en/release-2.2/couchdb_tutorial.html#use-best-practices-for-queries-and-indexes

相关问题