Uploaded image for project: 'Couchbase Server'
  1. Couchbase Server
  2. MB-44150

FTS: Flex index - closed range query execution fails

    XMLWordPrintable

Details

    • Untriaged
    • Centos 64-bit
    • 1
    • Unknown

    Description

      Build: 7.0.0-4342

      Having 1000 docs like

      {
        "mutated": 0,
        "join_date": "1993-05-16T18:16:44",
        "languages_known": [
          "Urdu",
          "German",
          "Hindi"
        ],
        "manages": {
          "reports": [
            "Kerry Allen",
            "Kimberly Allen",
            "Riona Wilson",
            "Kerry-Ann Ward",
            "Keelia Evans",
            "Hanna Rogers",
            "Kory Rogers",
            "Tempest Harris"
          ],
          "team_size": 8
        },
        "name": "Ambika Clark",
        "dept": "Pre-sales",
        "salary": 104754,
        "type": "emp",
        "is_manager": true,
        "email": "Ambika@mcdiabetes.com",
        "emp_id": "10000001"
      }
      

      loaded into collection default.scope1.collection1

      and having FTS index:

      {
       "name": "default_index_1",
       "type": "fulltext-index",
       "params": {
        "doc_config": {
         "docid_prefix_delim": "",
         "docid_regexp": "",
         "mode": "scope.collection.type_field",
         "type_field": "type"
        },
        "mapping": {
         "default_analyzer": "keyword",
         "default_datetime_parser": "dateTimeOptional",
         "default_field": "_all",
         "default_mapping": {
          "dynamic": false,
          "enabled": false
         },
         "default_type": "_default",
         "docvalues_dynamic": true,
         "index_dynamic": true,
         "store_dynamic": false,
         "type_field": "_type",
         "types": {
          "scope1.collection1": {
           "default_analyzer": "keyword",
           "dynamic": true,
           "enabled": true
          }
         }
        },
        "store": {
         "indexType": "scorch",
         "mossStoreOptions": {},
         "segmentVersion": 15
        }
       },
       "sourceType": "gocbcore",
       "sourceName": "default",
       "sourceUUID": "843019ddad5792ed1a27bcdc874bb799",
       "sourceParams": {},
       "planParams": {
        "maxPartitionsPerPIndex": 171,
        "numReplicas": 0,
        "indexPartitions": 6
       },
       "uuid": "13909364f359d5b2"
      }
      

      I'm trying to run the following query:

      select count(*) from `default`.scope1.collection1 USE INDEX(USING FTS) where salary < -10 and salary > -100
      

      It returns an error:

      [
        {
          "code": 4000,
          "msg": "No index available on keyspace `default`:`default`.`scope1`.`collection1` that matches your query. Use CREATE PRIMARY INDEX ON `default`:`default`.`scope1`.`collection1` to create a primary index, or check that your expected index is online.",
          "query": "select count(*) from `default`.scope1.collection1 USE INDEX(USING FTS) where salary < -10 and salary > -100"
        }
      ]
      

      Almost the same query

      select count(*) from `default`.scope1.collection1 USE INDEX(USING FTS) where salary >-100 and salary < -10
      

      (I just changed positions of salary conditions)

      executes successfully

       

       

      Attachments

        No reviews matched the request. Check your Options in the drop-down menu of this sections header.

        Activity

          Evgeny Makarenko We don't infer this as a closed range query - 

          where salary < -10 and salary > -100 

          Check out the rules set here - https://docs.google.com/document/d/1vv1P7HJ_HIgPkVE5bkidEgNPZdAWe7W1Al3H2Kc8Dz0/edit#heading=h.jry0vopean50

          The min range is expected before the max range.

          abhinav Abhinav Dangeti added a comment - Evgeny Makarenko  We don't infer this as a closed range query -  where salary < - 10 and salary > - 100 Check out the rules set here - https://docs.google.com/document/d/1vv1P7HJ_HIgPkVE5bkidEgNPZdAWe7W1Al3H2Kc8Dz0/edit#heading=h.jry0vopean50 The min range is expected before the max range.

          tests are modified to be compatible with documentation

          evgeny.makarenko Evgeny Makarenko (Inactive) added a comment - tests are modified to be compatible with documentation

          People

            evgeny.makarenko Evgeny Makarenko (Inactive)
            evgeny.makarenko Evgeny Makarenko (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes

                PagerDuty