wearetheledger / fabric-network-boilerplate

Boilerplate for starting your hyperledger fabric network
https://theledger.be
MIT License
67 stars 27 forks source link

Does richQuery with sort work with the index you had built? #6

Closed RogerHsiehNCNCCU closed 6 years ago

RogerHsiehNCNCCU commented 6 years ago

Excuse me. I want to know does richQuery with sort work with the index(testcolor.json) you had built?

I had used my code to do the sort, but it failed. Here is my data: let Datas = [{ Name: '鴻海', Product: 'Stock', Frequency: 'Daily', Interval: '1 min', TimeStamp: '2018/04/01 12:11:11', OwnerID: 'User1' },{ Name: '安聯台灣科技基金', Product: 'fund', Frequency: 'Daily', Interval: '1 m', TimeStamp: '2018/03/11 22:10:15', OwnerID: 'User1' },{ Name: '元大台灣50', Product: 'ETF', Frequency: 'Weekly', Interval: '1 y', TimeStamp: '2018/02/22 14:28:55', OwnerID: 'User2' },{ Name: '利安資金越南基金(新元)', Product: 'Fund', Frequency: 'Weekly', Interval: '1 y', TimeStamp: '2018/02/22 15:28:55', OwnerID: 'User2' },{ Name: '欣興', Product: 'stock', Frequency: 'Daily', Interval: '1 y', TimeStamp: '2018/02/22 16:28:55', OwnerID: 'User1' },{ Name: '台郡', Product: 'stock', Frequency: 'Daily', Interval: '1 y', TimeStamp: '2018/02/22 17:28:55', OwnerID: 'User2' }]; Here is my index json file: {"index":{"fields":["docType","Frequency"]},"ddoc":"indexFrequencyDoc", "name":"indexFrequency","type":"json"}

Here is my code: const Data = stubHelper.getQueryResultAsList({ "selector": {"Frequency": "Daily"},"fields":["Name","Product","Frequency"],"sort": [{"Frequency": "desc"}] //,"use_index":"_design/indexFrequencyDoc" });

Error running query. Reason: (no_usable_index) No index exists for this sort, try indexing by the sort fields.

I know frequency query result may all be Daily. But I want to test the code first. If it can work, I will build another query. Thanks.

sneljo1 commented 6 years ago

The indices are not a universal solution. You will need to create a new index file describing this "Frequency" field. Please check out http://hyperledger-fabric.readthedocs.io/en/release-1.1/couchdb_as_state_database.html#using-couchdb-from-chaincode for more details.