Neo4j имеет две системы индексации.
Более современный называется «индексами схемы», и они являются автоматическими и применяются к свойствам заданной метки для быстрого поиска по этим свойствам, когда заданные свойства и метка предоставляются в запросе. В настоящее время это не поддерживает индексацию свойств отношений. Они начинались на основе lucene, но мы постепенно заменили реализацию на наше собственное решение для индексирования. Обсуждение этих вопросов, а также любая заслуживающая внимания информация и ограничения можно найти в нашей документации по конфигурации индекса .
Другая система индексации - это более старая ручная система, которая называется «явные индексы», хотя ранее она называлась «ручные индексы». Это также основано на lucene, но они не являются автоматическими - пользователь может вручную добавлять или удалять записи в индексе и обновлять их при изменении данных в базе данных. Это делает использование и обслуживание громоздким, и мы рекомендуем по возможности избегать использования этой системы.
Встроенные процедуры - это средства для создания и поиска с использованием явных индексов, поскольку они никогда не используются автоматически под капотом (в отличие от индексов схемы). Процедуры APOC также предлагает различные способы взаимодействия с явными индексами.
Основная причина, по которой можно использовать явные индексы, заключается в том, что вы можете создать индекс для отношений для свойств и получить быстрый поиск при запросе индекса. Это также позволяет выполнять полнотекстовый поиск по нескольким меткам и свойствам, если индекс настроен таким образом.
Отдельно от всего этого следует отметить, что использование меток само по себе является своего рода индексом, поскольку оно обеспечивает быстрый доступ ко всем узлам с данной меткой.