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

FlexIndex: FTS index not sargable for Array in query predicate

    XMLWordPrintable

Details

    • Untriaged
    • Unknown

    Description

      Build: 7.0.0-1814

      have docs with objects in the bucket (refer manages below doc)

      {
        "salary": 71234.79,
        "languages_known": [
          "German",
          "Malay",
          "Hindi"
        ],
        "is_manager": true,
        "mutated": 0,
        "manages": {
          "team_size": 10,
          "manager": "manager1",
          "reports": [
            "Hanna Jackson",
            "Solita King Jr.",
            "Hanna Moore",
            "Dominique Aarón",
            "Ebony White",
            "Keelia Brown",
            "Joby Harris",
            "Devi Jones",
            "Trista Damián",
            "Treva Howard Jr."
          ]
        },
        "emp_id": "10000381",
        "name": "Mia Hall",
        "dept": "Sales",
        "_id": "emp10000381",
        "email": "mia@mcdiabetes.com",
        "join_date": "1972-04-07T17:23:00",
        "type": "emp"
      }
      

      Create index like below:

      {
        "type": "fulltext-index",
        "name": "custom_index",
        "uuid": "4de1606e75fdd196",
        "sourceType": "gocbcore",
        "sourceName": "default",
        "sourceUUID": "98c33c18ea57ced3a475c367a74b21f3",
        "planParams": {
          "maxPartitionsPerPIndex": 171,
          "indexPartitions": 6
        },
        "params": {
          "doc_config": {
            "docid_prefix_delim": "",
            "docid_regexp": "",
            "mode": "type_field",
            "type_field": "type"
          },
          "mapping": {
            "analysis": {
              "analyzers": {
                "customAnalyzer1": {
                  "char_filters": [
                    "html"
                  ],
                  "token_filters": [
                    "ngram"
                  ],
                  "tokenizer": "web",
                  "type": "custom"
                }
              },
              "char_filters": {
                "mapping": {
                  "regexp": "[f]",
                  "replace": "ph",
                  "type": "regexp"
                }
              },
              "token_filters": {
                "back_edge_ngram": {
                  "back": true,
                  "max": 5,
                  "min": 3,
                  "type": "edge_ngram"
                },
                "dict_compound_en": {
                  "dict_token_map": "stop_en",
                  "type": "dict_compound"
                },
                "dict_compound_fr": {
                  "dict_token_map": "articles_fr",
                  "type": "dict_compound"
                },
                "front_edge_ngram": {
                  "back": false,
                  "max": 5,
                  "min": 3,
                  "type": "edge_ngram"
                },
                "keyword_marker": {
                  "keywords_token_map": "stopwords",
                  "type": "keyword_marker"
                },
                "length": {
                  "max": 5,
                  "min": 3,
                  "type": "length"
                },
                "ngram": {
                  "max": 5,
                  "min": 3,
                  "type": "ngram"
                },
                "shingle": {
                  "filler": "",
                  "max": 5,
                  "min": 2,
                  "output_original": "false",
                  "separator": "",
                  "type": "shingle"
                },
                "stopwords": {
                  "stop_token_map": "stopwords",
                  "type": "stop_tokens"
                },
                "truncate": {
                  "length": 10,
                  "type": "truncate_token"
                }
              },
              "token_maps": {
                "stopwords": {
                  "tokens": [
                    "i",
                    "me",
                    "my",
                    "myself",
                    "we",
                    "our",
                    "ours",
                    "ourselves",
                    "you",
                    "your",
                    "yours",
                    "yourself",
                    "yourselves",
                    "he",
                    "him",
                    "his",
                    "himself",
                    "she",
                    "her",
                    "hers",
                    "herself",
                    "it",
                    "its",
                    "itself",
                    "they",
                    "them",
                    "their",
                    "theirs",
                    "themselves",
                    "what",
                    "which",
                    "who",
                    "whom",
                    "this",
                    "that",
                    "these",
                    "those",
                    "am",
                    "is",
                    "are",
                    "was",
                    "were",
                    "be",
                    "been",
                    "being",
                    "have",
                    "has",
                    "had",
                    "having",
                    "do",
                    "does",
                    "did",
                    "doing",
                    "would",
                    "should",
                    "could",
                    "ought",
                    "i'm",
                    "you're",
                    "he's",
                    "she's",
                    "it's",
                    "we're",
                    "they're",
                    "i've",
                    "you've",
                    "we've",
                    "they've",
                    "i'd",
                    "you'd",
                    "he'd",
                    "she'd",
                    "we'd",
                    "they'd",
                    "i'll",
                    "you'll",
                    "he'll",
                    "she'll",
                    "we'll",
                    "they'll",
                    "isn't",
                    "aren't",
                    "wasn't",
                    "weren't",
                    "hasn't",
                    "haven't",
                    "hadn't",
                    "doesn't",
                    "don't",
                    "didn't",
                    "won't",
                    "wouldn't",
                    "shan't",
                    "shouldn't",
                    "can't",
                    "cannot",
                    "couldn't",
                    "mustn't",
                    "let's",
                    "that's",
                    "who's",
                    "what's",
                    "here's",
                    "there's",
                    "when's",
                    "where's",
                    "why's",
                    "how's",
                    "a",
                    "an",
                    "the",
                    "and",
                    "but",
                    "if",
                    "or",
                    "because",
                    "as",
                    "until",
                    "while",
                    "of",
                    "at",
                    "by",
                    "for",
                    "with",
                    "about",
                    "against",
                    "between",
                    "into",
                    "through",
                    "during",
                    "before",
                    "after",
                    "above",
                    "below",
                    "to",
                    "from",
                    "up",
                    "down",
                    "in",
                    "out",
                    "on",
                    "off",
                    "over",
                    "under",
                    "again",
                    "further",
                    "then",
                    "once",
                    "here",
                    "there",
                    "when",
                    "where",
                    "why",
                    "how",
                    "all",
                    "any",
                    "both",
                    "each",
                    "few",
                    "more",
                    "most",
                    "other",
                    "some",
                    "such",
                    "no",
                    "nor",
                    "not",
                    "only",
                    "own",
                    "same",
                    "so",
                    "than",
                    "too",
                    "very"
                  ],
                  "type": "custom"
                }
              },
              "tokenizers": {
                "alphanumeric": {
                  "regexp": "[0-9a-zA-Z_]*",
                  "type": "regexp"
                }
              }
            },
            "default_analyzer": "standard",
            "default_datetime_parser": "dateTimeOptional",
            "default_field": "_all",
            "default_mapping": {
              "dynamic": false,
              "enabled": true,
              "properties": {
                "manages": {
                  "dynamic": false,
                  "enabled": true,
                  "properties": {
                    "manager": {
                      "dynamic": false,
                      "enabled": true,
                      "fields": [
                        {
                          "analyzer": "keyword",
                          "docvalues": true,
                          "include_in_all": true,
                          "include_term_vectors": true,
                          "index": true,
                          "name": "manager",
                          "type": "text"
                        }
                      ]
                    },
                    "reports": {
                      "dynamic": false,
                      "enabled": true,
                      "fields": [
                        {
                          "analyzer": "keyword",
                          "docvalues": true,
                          "include_in_all": true,
                          "include_term_vectors": true,
                          "index": true,
                          "name": "reports",
                          "type": "text"
                        }
                      ]
                    }
                  }
                }
              }
            },
            "default_type": "_default",
            "docvalues_dynamic": true,
            "index_dynamic": true,
            "store_dynamic": false,
            "type_field": "type"
          },
          "store": {
            "indexType": "scorch",
            "mossStoreOptions": {}
          }
        },
        "sourceParams": {}
      }
      

      FTS index is not sargable for below query:

      select meta().id from default USE INDEX (custom_index USING FTS) where "Severin Mitchell" IN manages.reports
      

      Attachments

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

        Activity

          People

            girish.benakappa Girish Benakappa
            girish.benakappa Girish Benakappa
            Votes:
            0 Vote for this issue
            Watchers:
            6 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes

                PagerDuty