# datanet-search-engine-backend **Repository Path**: BDWare/datanet-search-engine-backend ## Basic Information - **Project Name**: datanet-search-engine-backend - **Description**: No description available - **Primary Language**: Java - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 2 - **Created**: 2021-11-01 - **Last Updated**: 2025-07-29 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 注册表开发文档 ## 准备依赖环境 执行下面指令,将cp-bundle项目build后的产物软连接到backend路径下(两个路径都使用绝对路径) ```bash ln –s xxx/cp-bundle/cp/build/output/libs ./datanet-search-engine-bundle/datanet-search-engine-backend/cplib ``` 注意:执行完之后的格式应该如下所示 cplib有若干jar包,没有多余的文件夹,结构如下图所示 ![img_2.png](img_2.png) ## build 执行bulidYPK即可,会生成Registry-x.y.z.ypk ## 部署 如下图所示,在testBundle项目当中的test-tool下配置上传节点的配置文件,然后执行deploySearchEngine即可批量上传运行 参数格式与本地测试一样 ![img_1.png](img_1.png) ![img.png](img.png) ## YPK的相关文档 [ypk的开发文档](https://public.internetapi.cn/docs/bdcontract/doc/v1.7.5/5_YJSInDepth.html) [ypk的运行环境](https://public.internetapi.cn/docs/bdcontract/doc/v1.7.5/1_Introduction.html) [ypk的调试](https://gitee.com/BDWare/contract-java-example) ## 启动参数说明 在本地启动合约引擎,debugconf配置如上图所示,然后执行debugMain 配置debugconf.json具体参数如下所示 agentAddress:线上:023.node.internetapi.cn:21130,本地127.0.0.1:18000 killBeforeStart:若合约引擎当中已经运行该合约,上传时会先停掉旧合约 createParam:启动参数 参数当中的公私钥按需配置,prefix和reponame是当前repo的信息,routerURI是同级的路由器地址(一般不变),doMetaName是默认存储路径(一般不变) ```json { "agentAddress": "127.0.0.1:18000", "privateKey": "589d94ee5688358a1c5c18430dd9c75097ddddebf769f139da36a807911d20f8", "publicKey": "04d1924329f72ced148f6f333fb985ccbaa31b1e3aacf10be5f43d4a4ff5ad88899a005e79e37fc06993e1d66ada8cf8b711cb36f59538bb7d3e39e70fa9360ddd", "ypkPath": "./build/Registry-1.2.6.ypk", "killBeforeStart": "Registry", "createParam": { "privateKey": "1d4196947f59532db6f8f4055e58474a48db8f30b476ae3edc66406464521b3b", "publicKey": "04180354fdb6507f8ab98ccfbe165ce11da74ba733f81af86ad6d32216b32cf4f797c559d50ceeefbf4c760c3483840471c67471b90acdffb388cd7d496d9a1610", "repoName": "RegistryLocal", "routerURI": "tcp://127.0.0.1:21041", "doMetaName": "SearchEngineDoMetaIndex", "initialIndexKeys": [ { "key": "doId", "description": "数字对象的标识", "type": "String" }, { "key": "owner", "description": "数字对象的所有者", "type": "Text" }, { "key": "type", "description": "数字对象的类型", "type": "String" }, { "key": "fromRepo", "description": "来自哪个仓库", "type": "Text" }, { "key": "createTime", "description": "创建时间", "type": "Number" } ] } } ``` ## 常见问题 ### 本地java环境乱码 将所有的存在编码的地方都换成utf-8,包括环境变量等配置 ### 有些包找不到 1.检查cplib下面是否存在,注意所有的jar包直接在cplib下,中间没有其他文件夹 2.检查bulid.gradle当中的implement ## 开发说明 backend下面的关键部分如下所示 ### 1.cplib 依赖于ContractProcess的jar包 ### 2.yjs 合约部分,包括一下内容 - DAC.yjs 用于实现访问控制 - manifest.json - mockConfig.json 用于模拟数据的配置 - Registry.yjs 注册表对外提供的接口实现(其中会调用java的实现) ### 3.src 用于实现搜索功能 SearchEngie接口 0.获取SearchEngine对象 ```java se=SearchEngine.createObj() ``` 1.添加元数据索引: ```java se.update(ScriptObjectMirror so) ``` 2.搜索 ```java // 单个关键字 // 参数: {type":"doid","ketword":"DBRepo","count":10,"offset":0} se.search(ScriptObjectMirror so) // 多个关键字 // 参数: {"params":[{"type":"doid","ketword":"DBRepo"},{"type":"name","ketword":"xxx"}],"count":10,"offset":0} se.searchByMultiTag(ScriptObjectMirror so) ``` ## windows系统运行项目 项目编译的时候出现乱码,可以在 build.gradle的末尾添加 ``` tasks.withType(JavaCompile) { options.encoding = "UTF-8" } ``` 在运行org.bdware.sc.debugger.DebugMain.runWithConf(...)本地debug时,报错,查看发现是一些字符串变量出现乱码 解决方法在运行debug处,右键进入修改运行配置,添加VM选项,输入下面内容应用确定。 ``` -Dfile.encoding=utf8 ``` 启动debug的配置文件在testinput文件下,没有需要自己手动添加testinput文件,并将/debugconfig-docker.json.template修改为 debugconfig-docker.json添加到testinput文件中。 windows系统不能识别"cpHost": "host.docker.internal",需要修改为本机地址。 ## 项目依赖更新 需要到[maven仓库](https://mvnrepository.com/search?q=bdware)中,查看最新版本号,修改build.gradle 为对应的最新版本号,build完成后可能需要修改源代码。 ## 本地debug的两种方法 ### 单独启动RepoExample项目 进入到iod-repo-backend/main/java/DebugMain,直接调试即可 ### 与iod-docker-deploy配合进行测试 进入到iod-repo-backend/main/java/DebugMain,需要修改变量 inDocker = true; 然后调试启动,进入http://ip:21030/NodePortal.html查看。