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;
    }
}
相关推荐
uzong2 小时前
程序员从大厂回重庆工作一年
java·后端·面试
kyle~2 小时前
C++---value_type 解决泛型编程中的类型信息获取问题
java·开发语言·c++
NiNi_suanfa5 小时前
【Qt】Qt 批量修改同类对象
开发语言·c++·qt
小糖学代码5 小时前
LLM系列:1.python入门:3.布尔型对象
linux·开发语言·python
Data_agent5 小时前
1688获得1688店铺详情API,python请求示例
开发语言·爬虫·python
妖灵翎幺6 小时前
C++ 中的 :: 操作符详解(一切情况)
开发语言·c++·ide
开心香辣派小星6 小时前
23种设计模式-15解释器模式
java·设计模式·解释器模式
Halo_tjn6 小时前
虚拟机相关实验概述
java·开发语言·windows·计算机
star _chen6 小时前
C++实现完美洗牌算法
开发语言·c++·算法
周杰伦fans6 小时前
pycharm之gitignore设置
开发语言·python·pycharm