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;
    }
}
相关推荐
人工智能训练1 小时前
【极速部署】Ubuntu24.04+CUDA13.0 玩转 VLLM 0.15.0:预编译 Wheel 包 GPU 版安装全攻略
运维·前端·人工智能·python·ai编程·cuda·vllm
yaoming1681 小时前
python性能优化方案研究
python·性能优化
兩尛2 小时前
c++知识点2
开发语言·c++
fengfuyao9852 小时前
海浪PM谱及波形的Matlab仿真实现
开发语言·matlab
xiaoye-duck2 小时前
C++ string 底层原理深度解析 + 模拟实现(下)——面试 / 开发都适用
开发语言·c++·stl
码云数智-大飞2 小时前
使用 Python 高效提取 PDF 中的表格数据并导出为 TXT 或 Excel
python
Hx_Ma163 小时前
SpringMVC框架提供的转发和重定向
java·开发语言·servlet
biuyyyxxx4 小时前
Python自动化办公学习笔记(一) 工具安装&教程
笔记·python·学习·自动化
期待のcode4 小时前
原子操作类LongAdder
java·开发语言
极客数模4 小时前
【2026美赛赛题初步翻译F题】2026_ICM_Problem_F
大数据·c语言·python·数学建模·matlab