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;
    }
}
相关推荐
Johny_Zhao5 分钟前
基于CentOS Stream 8的物联网数据采集与展示方案
linux·网络·python·mqtt·mysql·网络安全·信息安全·云计算·shell·yum源·系统运维
浮游本尊20 分钟前
Java学习第2天 - 面向对象编程基础
java
我叫小白菜30 分钟前
【Java_EE】Spring MVC
java·spring·mvc
这里有鱼汤31 分钟前
想成为下一个吉姆·西蒙斯,这十种经典K线形态你一定要记住
后端·python
SimonKing36 分钟前
吊打面试官系列:BeanFactory和FactoryBean的区别
java·后端·面试
Scoful39 分钟前
快速用 uv 模拟发布一个 Python 依赖包到 TestPyPI 上,以及常用命令
开发语言·python·uv
xyl86642 分钟前
Python 包管理器 uv 介绍
python·uv
databook43 分钟前
规则学习:让机器学习像人类一样思考的可解释之路
python·机器学习·scikit-learn
FlyingBird~1 小时前
CocosCreator 之 JavaScript/TypeScript和Java的相互交互
java·javascript·typescript
clock的时钟1 小时前
c++第七天--继承与派生
开发语言·c++