Java代码实现根据节点属性信息模糊查询节点

Neo4jUtil.java

java 复制代码
@Component
@Slf4j
public class Neo4jUtil {
@Resource
    private Session session;

    public List<Map<String,Object>> getNodeInfoByNodeName(String nodeName) {

        List<Map<String,Object>> dataList = new ArrayList<>();
         if (StrUtil.isBlank(nodeName)) {
             return dataList;
         }

         //拼装查询语句
        String cypherSql = String.format("MATCH (n) where n.name=~ '.*%s.*' RETURN n  ", nodeName);
        Result query = session.query(cypherSql, new HashMap<>(16));

        for (Map<String, Object> map : query.queryResults()) {
            NodeModel queryNode = (NodeModel) map.get("n");
            Long neo4jId = queryNode.getId();
            String[] labels = queryNode.getLabels();
            List<Property<String, Object>> propertyList = queryNode.getPropertyList();
            Map<String,Object> dataMap = new HashMap<>(5);
            for (Property<String, Object> stringObjectProperty : propertyList) {
                dataMap.put(stringObjectProperty.getKey(), stringObjectProperty.getValue());
                dataMap.put("neo4jId",neo4jId);
                dataMap.put("labels",labels);

            }
            dataList.add(dataMap);
        }
        session.clear();
        return dataList;
    }
}
相关推荐
csbysj20207 分钟前
Git 工作流程
开发语言
闲人编程14 分钟前
Agent的评估体系(AgentEval):如何判断一个Agent好坏?
大数据·人工智能·python·算法·agent·智能体·swe
johnrui22 分钟前
JUC之AQS
java·开发语言·jvm
Full Stack Developme23 分钟前
Spring 模块介绍
java·后端·spring
沫璃染墨31 分钟前
红黑树完全指南:从核心原理到插入验证全实现
开发语言·c++·算法
yu859395832 分钟前
基于 QT5.7.0 的八线激光雷达点云聚类实现
开发语言·qt·聚类
多敲代码防脱发36 分钟前
Spring进阶(BeanFactory与ApplicationContext)
java·数据库·spring boot·后端·spring
yoyo_zzm43 分钟前
汇编到PHP:五大编程语言核心特性全解析
开发语言·汇编·php
吴声子夜歌1 小时前
Java——反射
java·反射
JAVA面经实录9171 小时前
完整版JVM 深度学习体系(二)
java·jvm