Я уже некоторое время пытался создать много заметок в py2neo. Узлы основаны на прямом потоке твитов, где я хочу построить твит, информацию о том, кто их твиттер и Связь между твитами и другими узлами (например, повторные твиты, упоминания пользователей и теги).Создайте множество узлов в Neo4j, используя Py2neo
То, что я пробовал, представляет собой большой запрос cypher, используя MERGE для создания/получения идентификатора пользователя и твита и связывания их. Моя идея заключается в том, чтобы иметь следующие узлы:
- узел пользователя
- Tweet
- Теги
- Местонахождение (для твита)
- Адрес (для пользователя)
- Язык
- Пол
- TimeZone
А ссылки, где мне нужно поиск:
- Упоминания
- Re-чирикать
Это много письменной форме, и я что-то вроде этого:
statement = "MERGE (tUser:TwitterUser {id:{tuID}}) " \
"ON CREATE SET " \
"tUser.displayName = {tdNAME}, " \
"tUser.summary = {tdSummary}, " \
"tUser.link = {tdLink}, " \
"tUser.preferredUsername = {tdPreferredUsername}, " \
"tUser.account_created = {tdAccount_created}, " \
"tUser.last_lookup = 'Newer' " \
"" \
"MERGE (user:Person {name:{userName}})-[:twitter_acct]->(tUser) " \
"" \
"MERGE (gender:Gender {gender: {GENDER}})" \
"MERGE (user)-[:has_gender]->(gender) " \
"" \
"MERGE (user)-[:tweeted]->(tweet:Tweet {id:{tID}}) " \
"ON CREATE SET " \
"tweet.type = {tType}, " \
"tweet.link = {tLink}, " \
"tweet.body = {tBody}, " \
"tweet.postedTime = {tPostedTime} " \
"" \
"MERGE (timezone:TimeZone {name:{timeZoneName}}) " \
"MERGE (user)-[:has_time]->(timezone)" \
"" \
"MERGE (user)-[:use]->(generator:Generator {name: {generator}}) " \
"ON CREATE SET " \
"generator.link = {generatorLink} " \
"" \
"MERGE (tweet)-[:tweeted_in]->(tLocation:Location {name: {tLocationName}}) " \
"MERGE (tLocation)-[:in]->(tCountry:Country {name: {tCountryName}}) " \
"" \
"MERGE (user)-[:lives_in]->(uLocation:Location {name: {uLocationName}}) " \
"" \
"RETURN user"
Проблема: Когда я пытаюсь вставить твит в мою базу данных Neo4J, он не может следовать, также, когда Я пытаюсь сделать это с помощью набора данных, которые я сделал, он все еще делает это медленно. Я пытался использовать пакетные пакеты, но все же замедлялся.
Будет ли солюшение делать меньше нулей, получить лучшую машину или ...? (И как мне получить правильный идентификатор, например, пользовательский, если я перезапущу службу).
Прошу прощения за то, что я был точным. Я не уверен, что я не уверен. С «большим» считают 100 твитов пр. сек и «медленный», конечно, до машины. Для моей машины требуется около 10 секунд, чтобы ввести 1000 твитов (с, твит, пользовательский твиттер, lang, in-reply-to и т. Д.). Затем он начинает замедляться. Есть ли «лучшая практика» того, как писать из json -> python -> py2neo -> neo4j server? –