Примеры проектов ядра Java Java API neo4j
Нам нужно написать несколько спокойных сервисов для доступа / создания данных на Neo4j. Я нашел много примеров в Traverser Framework, но я хотел бы исследовать Java CORE API, поскольку упоминается, что производительность Java Core API намного лучше, чем Traverser по этой ссылке
Это правда? что Java CORE API лучше, чем Traverser? Может кто-нибудь подсказать мне полезные руководства по Java Core API для Neo4j?
1 ответ
Попробуйте задать другой вопрос здесь.
Я не оспариваю вывод о том, что API traverser медленнее, чем основной API, но имейте в виду, что это только для тех вещей, которые они пытались сделать в этом тесте.
Какой API вы должны использовать, зависит от того, что вы пытаетесь сделать. Без предоставления информации об этом мы не можем предложить, какой из них будет самым быстрым для вас.
Вот ваши варианты компромисса: если вы используете базовый API, то вы можете выполнять именно те операции низкоуровневого уровня, которые вам нужны. С другой стороны, вы должны сделать всю работу. Если операции, которые вы пытаетесь выполнить, являются сложными, далеко идущими или чувствительными к порядку, вы обнаружите, что пишете так много кода, что самостоятельно заново реализуете ошибочную версию Traversal API. Избегайте этого любой ценой! Производительность API Traversal почти наверняка лучше, чем то, что вы напишите самостоятельно.
С другой стороны, если выполняемые вами операции очень просты (ищите узел, захватывайте его непосредственных соседей по некоторому типу ребра, а затем возвращайте их), тогда базовый API - отличный выбор. В этом (очень простом) случае вам не нужны все навороты, которые дает вам Traversal.
Больше, чем просто ваш вопрос: в общем, хорошо избегать "преждевременной оптимизации". Если библиотека или фреймворк предоставляет вам метод, подобный API-интерфейсу Traversal, в качестве отправной точки полезно изучить эту абстракцию и использовать ее, потому что разработчики дали вам ее, чтобы упростить вашу жизнь, а не замедлить работу кода. Если окажется, что это больше, чем вам нужно, или производительность действительно отстает - подумайте об использовании основного API.
В конечном итоге, если вы собираетесь писать сервисы RESTful поверх Neo4J, вы, вероятно, в конечном итоге будете знать оба API. Итог - дело не в выборе того, который вам следует использовать, а в понимании их различий и того, какие ситуации играют на их сильных сторонах.