Индекс couchbase не выбирается n1ql - PullRequest
1 голос
/ 04 мая 2020

Я пытаюсь создать индекс покрытия, где данные сортируются по элементу. Индекс, похоже, не работает. Можете ли вы помочь с этим

Пример запроса -

выберите ax, by, az, ts из теста, где meta (). Id как 'CX%' и az = 'BBD' предел 100

Пример индекса - CREATE INDEX index_test_sec_idx ON тест (ax, by, az, ts C) WHERE ((meta (). id) как "CX%") WITH {"num_replica ": 1}

Я получаю приведенную ниже ошибку -

Нет индекса в пространстве ключей csrt_test, соответствующего вашему запросу. Используйте CREATE INDEX или CREATE PRIMARY INDEX для создания индекса или убедитесь, что ваш ожидаемый индекс находится в сети. ",

1 Ответ

2 голосов
/ 04 мая 2020

Индекс Couchbase не индексирует документ, когда значение ключа индексации MISSING отсутствует. Таким образом, предикат запроса должен иметь ссылку на ведущий индексный ключ для определения индекса.

select ax, by, az ,ts 
from test 
where meta().id like 'CX%' and az = 'BBD' AND ax IS NOT MISSING
limit 100

ИЛИ

select ax, by, az ,ts 
from test 
where meta().id like 'CX%' and az = 'BBD' 
limit 100

CREATE INDEX index_test_sec_idx ON test(az, by, ax ,ts DESC) 
WHERE ((meta().id) like "CX%") 
...