Blazegraph Tinkerpop 3 Indexing

Я пытаюсь узнать о Blazegraph. На данный момент я озадачен тем, как я могу оптимизировать простые поиски.

Предположим, что все мои вершины имеют свойство id, который является уникальным. Это свойство устанавливается пользователем. Есть ли способ ускорить поиск вершины конкретного id все еще придерживаясь API Tinkerpop?

API поиска определен здесь единственным способом?

Мой предыдущий опыт относится к TitanDB, и в случае с Titan можно определить индекс, с которым API Tinkerpop интегрируются безупречно. Есть ли способ достичь таких же результатов в Blazegraph без использования API поиска?

1 ответ

Решение

То, использует ли индекс среднего обхода () индекс или нет, зависит от того, существует ли подходящий индекс, и б) реализовал ли эту функцию конкретный поставщик графовой системы.

Gremlin (Tinkerpop) не указывает, как устанавливать индексы, хотя в документации представлены такие вещи, как

graph.createIndex("username",Vertex.class)

Но может быть зарезервировано для реализации ThinkerGraph, на самом деле это говорит

Каждая графовая система будет иметь свой механизм, с помощью которого определяются индексы и схемы. TinkerPop3 не требует какого-либо соответствия в этой области. В TinkerGraph единственные определения - это индексы. В других графовых системах типы значений свойств, индексы, метки ребер и т. Д. Могут быть определены априори для добавления данных в граф.

Есть пример для Neo4J

TinkerPop3 не предоставляет интерфейсов методов для определения схем / индексов для базовой системы графов. Таким образом, для создания индексов важно напрямую вызывать API Neo4j.

Но код очень специфичен для этого плагина

graph.cypher("CREATE INDEX ON :person(name)")

Обратите внимание, что для BlazeGraph при поиске используется встроенный полнотекстовый индекс

Другие вопросы по тегам