如何修复CouchDB查询以避免Partail索引?

时间:2018-11-30 02:57:06

标签: couchdb hyperledger-fabric couchdb-2.0

我正在使用CouchDB 2.1.1,并且我不了解CouchDB索引部分工作以及创建CouchDB索引的最佳方法的想法。

问题是我创建的部分工作的沙发床索引。

  1. 索引文档

    {
        "index": {
            "fields": [  "field_A, "field_B", "field_C","field_Z"  ]
        },
        "ddoc": "my_index_list",
        "name": "my_index_1st",
        "type": "json"
    }
    
  2. 选择查询

    { 
        "selector": {
           "field_A": "value_1",
           "field_B": "value_2",
           "field_Z":{
               "$lte":"value_3"
           }
        },
        "sort":[ "field_A, "field_B", "field_C","field_Z"],
        "use_index":[ "my_index_list","my_index_1st" ]
    }
    

当我运行这些语句时,从磁盘中获取的数据在索引字段上似乎只有“ field_A”和“ field_B”部分,而不是“ field_A”,“ field_B”,“ field_Z”。提取该数据后,该ouchdb引擎将在其数据库内存中查询数据匹配的选择器条件“ field_Z”。

我猜测索引文件中索引顺序的原因是[“ field_A”->  ->“ field_B”->“ field_C”->“ field_Z”],但选择器中没有关于“ field_C”的条件。因此,couchdb引擎在“ field_A”,“ field_B”上部分使用索引。

如何在不更改排序顺序的情况下修复查询或索引文档?

0 个答案:

没有答案