Есть ли какой-нибудь способ создать частичный индекс в ArangoDB?

#arangodb

#arangodb

Вопрос:

Я хочу создать частичный индекс для коллекции, но индекс должен применяться к документам по условиям. Например, я хочу проверять уникальность документов только в том случае, если они имеют определенное значение поля. Другими словами, я ищу какую-то конструкцию для создания индекса:

 db.person.createIndex( 
  { age: 1}, 
  { partialFilterExpression: { age: { $gte: 18 }}
); 
 

Этот пример взят из MongoDB, и он применяет индекс к документам со значением поля «возраст», превышающим 18

Ответ №1:

Невозможно создать «отфильтрованный индекс» (как вы можете в SQL). Согласно документам, вы можете включать атрибуты, но не условно.

Вы могли бы попробовать использовать разреженный индекс, но я думаю, что лучше всего добавить age атрибут в индекс «skiplist», который поддерживает сортировку и gt / lt или оценку.

Убедитесь, что вы используете эту explain функцию для проверки использования индекса.