Technology Stack:Tinkerpop Stack Rexster REST API _Недвижимости
- Tinkerpop Stack 2,4 (Rexster HTTP REST Сервер)
- Titan 0.5.4
- DynamoDB (AWS)
- NodeJS
Цель:
Я хотел бы использовать API-интерфейс Rexster RESTful для запросов и обходов моей базы данных графиков. Я пытаюсь понять параметр запроса _properties для фильтрации результатов на основе синтаксиса Vertex Query.
результат Вершины запроса:
http://localhost:8182/graphs/mygraph/vertices { "version": "2.5.0", "results": [ { "name": "Frank Stein", "_id": 25600768, "_type": "vertex" }, { "name": "John Doe", "_id": 25600512, "_type": "vertex" } ], "totalSize": 2, "queryTime": 219.86688 }
Результат края запроса:
Http: // Localhost: 8182/графики/mygraph/вершины
{ "version": "2.5.0", "results": [ { "_id": "f8q68-f8phc-4is5-f8pog", "_type": "edge", "_outV": 25600512, "_inV": 25600768, "_label": "friends" } ], "totalSize": 1, "queryTime": 164.384768 }
Проблема:
не вернуть то, что я предполагаю, что я хотел бы получить вернулся, всегда возвращает пустой набор этих Ури .:
просит:
_http: // локальный: 8182/графики/privvy/вершины/25600768/как? properties = [[name, =, "John Doe"]] _http: // localhost: 8182/graphs/privvy/vertices/25600768/both? properties = [[name, =, John Doe]] _http: // localhost: 8182/graphs/privvy/vertices/25600768/both? properties = [[name, =, (s, "John Doe")]] _http: // localhost: 8182/graphs/privvy/vertices/25600768/both? свойства = [[имя = (с, John Doe)]]
Response:
{ "version": "2.5.0", "results": [], "totalSize": 0, "queryTime": 22.641152 }
Дополнительная информация:
Следующий URI делает возвращать результирующий набор смежных вершин, если я просто переключу оператор = (равный) на оператор <> (не равен):
Запрос:
_http: // локальный: 8182/графики/privvy/вершины/25600768/как?свойства = [[имя, <>, "John Doe"]]
Ответ:
{ "version": "2.5.0", "results": [ { "name": "John Doe", "_id": 25600512, "_type": "vertex" } ], "totalSize": 1, "queryTime": 17.451008 }
Кто-нибудь есть какие-либо подсказки, где я могу быть неправильно?
Ссылки:
- https://github.com/tinkerpop/rexster/wiki/Basic-REST-API
- https://github.com/tinkerpop/rexster/wiki/Property-Data-Types (Показывает никаких примеров использования строки для данных типа Vertex запросов.)
- https://github.com/tinkerpop/blueprints/wiki/Vertex-Query
Благодарности Друзья!
Том
Спасибо за эту информацию. Из того, что вы указали, имеет смысл, что варианты использования Vertex Query могут основываться на обходных методах и фильтрации, однако мне трудно поверить, что мне нужно будет де-нормализовать свойства вершин в край, чтобы выполнить цель, которую я пытаюсь сделать. Поражает цель системы DB/Graph полностью. Мне нужно найти способ фильтрации запросов по свойствам вершин, возможно, мне нужно изучить вершинные ключи для этого стека технологий. –
Если ваш граф не имеет какой-либо нормы, где у вас есть миллионы ребер на вершину, денормализация, вероятно, не является чем-то, что следует учитывать. Вы можете легко фильтровать в своем вопросе (то есть по свойствам вершин) довольно легко с Gremlin, вы просто не можете сделать это со стандартным REST API, который предоставляет Rexster. Итак, если вам нужно это сделать, я просто воспользуюсь расширением Gremlin от Rexster. btw, обратите внимание, что Rexter больше не разрабатывается - см. Gremlin Server для TinkerPop 3, если вы только начинаете: http://tinkerpop.apache.org/docs/3.1.0-incubating/#gremlin-server –
И теперь, вы можете использовать TP3 и Titan 1.0.0 с DynamoDB: https://github.com/awslabs/dynamodb-titan-storage-backend –