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

Flex Index: one doc missing with date in query predicate

    XMLWordPrintable

Details

    • 1

    Description

      Build: 7.0.0 build 1975

      • Load dataset attached
      • Create default fts index with keyword analyzer:

        {
          "type": "fulltext-index",
          "name": "custom_index",
          "uuid": "77f664b0dd267b29",
          "sourceType": "gocbcore",
          "sourceName": "default",
          "sourceUUID": "19db9b9e37524f7aa371d71d37a8dab3",
          "planParams": {
            "maxPartitionsPerPIndex": 171
          },
          "params": {
            "doc_config": {
              "docid_prefix_delim": "",
              "docid_regexp": "",
              "mode": "type_field",
              "type_field": "type"
            },
            "mapping": {
              "analysis": {},
              "default_analyzer": "standard",
              "default_datetime_parser": "dateTimeOptional",
              "default_field": "_all",
              "default_mapping": {
                "dynamic": true,
                "enabled": false
              },
              "default_type": "_default",
              "docvalues_dynamic": true,
              "index_dynamic": true,
              "store_dynamic": false,
              "type_field": "type",
              "types": {
                "emp": {
                  "dynamic": false,
                  "enabled": true,
                  "properties": {
                    "is_manager": {
                      "dynamic": false,
                      "enabled": true,
                      "fields": [
                        {
                          "include_in_all": true,
                          "include_term_vectors": true,
                          "index": true,
                          "name": "is_manager",
                          "type": "boolean"
                        }
                      ]
                    },
                    "join_date": {
                      "dynamic": false,
                      "enabled": true,
                      "fields": [
                        {
                          "include_in_all": true,
                          "include_term_vectors": true,
                          "index": true,
                          "name": "join_date",
                          "type": "datetime"
                        }
                      ]
                    },
                    "manages": {
                      "dynamic": false,
                      "enabled": true,
                      "properties": {
                        "team_size": {
                          "dynamic": false,
                          "enabled": true,
                          "fields": [
                            {
                              "include_in_all": true,
                              "include_term_vectors": true,
                              "index": true,
                              "name": "team_size",
                              "type": "number"
                            }
                          ]
                        }
                      }
                    },
                    "mutated": {
                      "dynamic": false,
                      "enabled": true,
                      "fields": [
                        {
                          "include_in_all": true,
                          "include_term_vectors": true,
                          "index": true,
                          "name": "mutated",
                          "type": "number"
                        }
                      ]
                    },
                    "name": {
                      "dynamic": false,
                      "enabled": true,
                      "fields": [
                        {
                          "analyzer": "keyword",
                          "include_in_all": true,
                          "include_term_vectors": true,
                          "index": true,
                          "name": "name",
                          "type": "text"
                        }
                      ]
                    }
                  }
                }
              }
            },
            "store": {
              "indexType": "scorch",
              "mossStoreOptions": {}
            }
          },
          "sourceParams": {}
        }
        

      • Create GSI primary index
      • For the below Flex queries with date, fts index is considered but returns different results comparing with GSI results

         
        Number of results from flex query: select meta().id from default USE INDEX (USING FTS, USING GSI) where type = "emp" and ( join_date >= "1979-09-25T12:17:00Z" and join_date < "2020-05-05T00:01:29.741696Z") is 585
         
         
        Number of results from gsi query: select meta().id from default where type = "emp" and ( join_date >= "1979-09-25T12:17:00" and join_date < "2020-05-05T00:01:29.741696") is 586\
        

      Explain plan:

      {
          "#operator": "Sequence",
          "~children": [
              {
                  "#operator": "IndexFtsSearch",
                  "index": "custom_index",
                  "index_id": "77f664b0dd267b29",
                  "keyspace": "default",
                  "namespace": "default",
                  "search_info": {
                      "field": "\"\"",
                      "options": "{\"index\": \"custom_index\"}",
                      "outname": "out",
                      "query": "{\"query\": {\"end\": \"2020-05-05T00:01:29.741696Z\", \"field\": \"join_date\", \"inclusive_end\": false, \"inclusive_start\": true, \"start\": \"1979-09-25T12:17:00Z\"}, \"score\": \"none\"}"
                  },
                  "using": "fts"
              },
              {
                  "#operator": "Fetch",
                  "keyspace": "default",
                  "namespace": "default"
              },
              {
                  "#operator": "Parallel",
                  "~child": {
                      "#operator": "Sequence",
                      "~children": [
                          {
                              "#operator": "Filter",
                              "condition": "(((`default`.`type`) = \"emp\") and ((\"1979-09-25T12:17:00Z\" <= (`default`.`join_date`)) and ((`default`.`join_date`) < \"2020-05-05T00:01:29.741696Z\")))"
                          },
                          {
                              "#operator": "InitialProject",
                              "result_terms": [
                                  {
                                      "expr": "(meta(`default`).`id`)"
                                  }
                              ]
                          }
                      ]
                  }
              }
          ]
      }
      

      Attachments

        Issue Links

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

          Activity

            People

              abhinav Abhi Dangeti
              girish.benakappa Girish Benakappa
              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