首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在每次服务器重新启动时使用现有的已创建neo4j图

在每次服务器重新启动时使用现有的已创建neo4j图
EN

Stack Overflow用户
提问于 2020-08-14 15:49:19
回答 1查看 20关注 0票数 0

我用neo4j(py2neo),Flask和超文本标记语言开发了一个web应用程序。我通过读取csv文件来创建Neo4j图。此CSV文件大小较大。因此,每当我启动或重新启动服务器时,每次都会创建Neo4j图,并且此设置需要花费大量时间。有没有什么我可以使用创建的图形并将其存储在我的机器中。所以我的项目结构是我的models.py,它包含连接图形,创建带有关系的图形,并将数据返回给routes.py。

我的models.py看起来像这样

代码语言:javascript
复制
from py2neo import Graph, Node, Relationship,NodeMatcher
import pandas as pd


class Query:
    "Model the tags"
    print("I am coming here")
    graph = Graph("http://blah:blah@127.0.0.1/db/data")
    print("hi i am second")
    
    try:
        graph.run("Match () Return 1 Limit 1")
        df=pd.read_csv("data.csv")
        print("I am not reading till")
        graph.delete_all()

        matcher = NodeMatcher(graph)
        row_count = len(df)      

        for i in range(row_count):            
            tags = df['tags'][i]
            each_tag = tags.split('|')
            tag_data = [x.lower() for x in each_tag]
            for j,first_tag in enumerate(tag_data[:-1]):
                match_first_tag = matcher.match("May21tag",tagName=first_tag).first()               
                graph.push(match_first_tag)
                for second_tag in tag_data[j+1:]:
                    my_tag = second_tag
                    second_tag = matcher.match("May21tag",tagName=second_tag).first()
                    graph.push(second_tag)                    
                    create_relationship = Relationship(match_first_tag ,"tagged",second_tag)
                    graph.merge(create_relationship)
    except Exception as e:
        print('not ok',e)

    def __init__(tech):
        tech_word = tech
        print("in init")

    def fetch_nodes(self,tech_word):
        graph = Graph("http://blah:blah@127.0.0.1/db/data")
        matcher = NodeMatcher(graph)
        match_nodes = matcher.match(tagName=tech_word).first()
        return (list(r.end_node["tagName"] for r in self.graph.match(nodes=(match_nodes,)).limit(6)))

所以这里发生的事情是,每当我运行app.py时,我都可以看到每次都创建了图形和关系。所以这需要时间。WHat我在这里需要的是,每当我启动或重新启动服务器时,我都想使用现有的带有关系的图。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-08-15 00:18:58

尝试删除Query中除__init__fetch_nodes方法定义之外的所有内容。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63408689

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档