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 при поиске используется встроенный полнотекстовый индекс