В отфильтрованном запросе каждый документ соответствия кандидата должен пройтись, чтобы проверить совпадения. Чтобы проверить соответствие диапазона элементов, нам просто нужно посмотреть имя элемента и затем его содержимое (если имена совпадают). Чтобы проверить соответствие диапазона пути, мы должны убедиться, что имя текущего элемента соответствует концу пути, а затем (в этом случае), что совпадает имя его родительского элемента, а затем этот родительский элемент находится в корне. Это не намного больше работы, но это больше работы. Аналогичным образом, для индексирования необходимо выполнить немного больше работы, чтобы узнать, какое содержимое элемента нужно индексировать.
Но вы также сравниваете яблоки с апельсинами по-другому: запрос значения не совпадает с запросом равенства диапазонапотому что запрос значения представляет собой полнотекстовый запрос - основанный и маркированный и, как правило, игнорирующий пробелы и знаки пунктуации - и запрос на равенство диапазонов представляет собой сравнение строк с использованием параметров сортировки. Для простого запроса значения большая часть работы может быть выполнена с помощью ключей, а не сравнения строк, но это сделает дополнительную работу с основами. С другой стороны, мы выполняем сравнения строк на стороне запроса диапазона, и для сопоставления без кодовой точки эти сравнения могут быть несколько сложными.
Если индекс диапазона пути будет выигрышным, если у вас есть документыс fname
элементами, которые не находятся под name
, поэтому их можно исключить с помощью разрешения индекса, и фильтру даже не нужно их учитывать.
Мой общий совет здесь: 1. Измерьте, потому что этоникогда не думайте о том, что вы думаете 2. Правило: выберите наименее ограничивающий индекс, который вам нужен, чтобы сделать различия, о которых вы заботитесь. то есть, если все ваши элементы fname
всегда находятся под name
, то не ставьте name
на своем пути, потому что это просто добавляет работу. 3. Запросы значений - это просто запросы слов с добавленным ограничением «должен соответствовать всему экстенту элемента»;не думайте о них как о равенстве строк. Используйте индексы диапазонов для сравнения строк, но выберите наиболее скучную сортировку, которую вы можете использовать для своего случая использования.