从零开始安装穿透式检索
1. 什么是穿透式检索
1.1. 当前的检索
传统的检索通过关键字搜索相关结果,并根据关联度进行排名,之后根据得到的结果中进行整理,获得最终结果,但最终结果并不能保证是需要的结果。
1.2. 穿透式检索
穿透式检索直接检索需要的数据,不需要人脑再次整理,可以参考Google OneBox
的概念。穿透式检索因为其结果的精确,可以为大数据和人工智能提供准确的素材,进而帮助大数据和人工智能获得更加准确的结果。
1.3. 为什么区块链需要穿透式检索
区块链数据是严谨的业务数据,对业务数据的分析有利于业务的增强。当前简单地关键词搜索无法提供所需的业务信息。在具体的业务中,快速方便地检索出需要的数据,为业务分析提供支持。为人工智能等系统提供基础数据。
2. 安装穿透式检索
前提假设:
- 假定穿透式检索安装的服务器
ip
为:192.168.151.40。 - 假定穿透式检索对接的
JDChain
区块链网关浏览器为:http://192.168.151.39:18081
2.1. 安装Argus
数据检索系统
将数据检索系统安装包(jdchain-argus-0.8.4.RELEASE.zip
)解压至/export/jdchain
文件夹。安装包下载地址:http://storage.jd.com/jd.block.chain/jdchain-argus-0.8.4.RELEASE.zip
解压命令:unzip jdchain-argus-0.8.4.RELEASE.zip –d argus
2.2. 安装DGraph
图数据库
下载dgraph v1.0.16
版本,并解压至argus
文件夹下;在PATH
中添加argus
文件夹路径。安装包下载地址:https://github.com/dgraph-io/dgraph/releases/download/v1.0.16/dgraph-linux-amd64.tar.gz
2.3. 修改配置环境
新建dgraph_log
文件夹:mkdir dgraph_log
。修改all.sh
脚本中相关参数:
#DGraph的URL
DGRAPH_URL="127.0.0.1:9090"
#ARGUS服务所在主机IP
ARGUS_HOST="192.168.151.40"
#高级检索使用的端口号;
ARGUS_SEARCH_PORT="10001"
#穿透式检索使用的端口号;
ARGUS_INDEXER_PORT="8082"
#JDChain网关对应的url
JDCHAIN_GW=http://jdchain-t.jd.com:8081## 2.4. 启动`DGraph`服务
执行解压文件中的all.sh
文件,启动Dgraph
服务。 具体脚本内容如下:
nohup dgraph zero > dgraph_zero.log 2>&1 &
nohup dgraph alpha --lru_mb 1024 --zero localhost:5080 --port_offset 10 --log_dir dgraph_log > dgraph_alpha.log 2>&1 &
2.5启动Argus
数据检索服务
在上节执行all.sh
文件后,穿透式检索也会自行启动。具体脚本内容如下:
#schema更新
/export/chain_explorer/argus schema-update --dgraph $DGRAPH_URL
#高级检索对应服务,需要将shell中的ip修改为当前机器ip。
nohup /export/chain_explorer/argus api-server --host $ARGUS_HOST --port $ARGUS_SEARCH_PORT --dgraph $DGRAPH_URL --production true> api-server.out 2>&1 &
#schema启动之后,生成的执行任务
nohup /export/chain_explorer/argus task --dgraph $DGRAPH_URL > task_monitor.log 2>&1 &
#调用区块链浏览器的api,探知新增块;其中的api参数对应的是网关浏览器;
nohup /export/chain_explorer/argus ledger-rdf --api $JDCHAIN_GW --dgraph $DGRAPH_URL --production true > converter2.out 2>&1 &
#schema服务监听端(list/add /start/stop等),其中ledger-host参数对应网关浏览器。
nohup /export/chain_explorer/argus data --ledger-host $JDCHAIN_GW --port $ARGUS_INDEXER_PORT --dgraph $DGRAPH_URL --production true > value_indexer.out 2>&1 &
至此,穿透式检索服务启动完毕。
3. 备注
- 如果高级检索和
JDChain
区块链环境部署在不同的机器中,需要修改JDChain
配置中的相关参数 - 在使用中发现,用户安装路径
ARGUS_PATH
可能与zip
包中有所不同,下方提供一个方便修改配置版本的all.sh
,方便试用的同学根据自身的环境要求各取所需。
#!/usr/bin/env bash
#jdchain's gateway corresponding version: 1.1.2.RELEASE;
DGRAPH_URL="127.0.0.1:9090"
ARGUS_HOST="127.0.0.1"
ARGUS_SEARCH_PORT="10001"
ARGUS_INDEXER_PORT="8082"
JDCHAIN_GW="http://jdchain-t.jd.com:8081"
ARGUS_PATH="/jdchain/argus/argus"
#first download the Dgraph version : v1.0.16
nohup dgraph zero > dgraph_zero.log 2>&1 &
sleep 2
nohup dgraph alpha --lru_mb 1024 --zero localhost:5080 --port_offset 10 --log_dir dgraph_log > dgraph_alpha.log 2>&1 &
sleep 8
$ARGUS_PATH schema-update --dgraph $DGRAPH_URL
sleep 2
nohup $ARGUS_PATH api-server --host $ARGUS_HOST --port $ARGUS_SEARCH_PORT --dgraph $DGRAPH_URL --production true> api-server.out 2>&1 &
sleep 2
nohup $ARGUS_PATH task --dgraph $DGRAPH_URL > task_monitor.log 2>&1 &
sleep 2
nohup $ARGUS_PATH ledger-rdf --api $JDCHAIN_GW --dgraph $DGRAPH_URL --production true > converter2.out 2>&1 &
sleep 2
nohup $ARGUS_PATH data --ledger-host $JDCHAIN_GW --port $ARGUS_INDEXER_PORT --dgraph $DGRAPH_URL --production true > value_indexer.out 2>&1 &
参考链接: https://zhuanlan.zhihu.com/p/101664039
- 怎样裁剪图片的局部
- vb中实现最佳按钮效果
- silverlight:wcf双工通讯学习笔记
- Docker容器学习梳理--web管理工具DockerUI部署记录
- Docker容器学习梳理-容器硬盘热扩容
- 检测到Loaderlock的问题
- 权威报告预测比特币在2018年“王位”不保
- Linux下FTP环境部署梳理(vsftpd和proftpd)
- Silverlight如何与JS相互调用
- Docker容器学习梳理--私有仓库Registry使用
- 从插件重构看如何提升测试质量与效率
- 巧用WinRAR+Javascript解决activeX的自动安装问题
- 在网页中实现QQ的屏幕截图功能
- Activity之间传递参数
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 原生node处理get和post请求
- 如何在Vue中自己实现v-model
- 【STM32F429】第1章 当前主流的小型嵌入式GUI
- 【Unity游戏开发】升级Unity2019后,资源管线后处理采坑记录
- Angular @Effect监听指定Action类型的实现原理
- SAP Spartacus shipping address页面请求1 - Address
- SAP Spartacus shipping address页面请求2.1 - setDefaultAddress
- SAP Spartacus只执行指定单元测试的小技巧
- SAP CDS view里将Date和time连接成timestamp的函数
- SAP CDS view里计算两个date & time字段间包含的seconds秒数
- SAP CDS view里的日期操作函数(往后推算X天得到新日期)
- SAP CDS view的日期格式转换,比如从YYYYMMDD转到DD/MM/YYYY
- SAP CDS view如何取得当前系统日期和系统时间戳
- Vue 父组件如何监听子组件的生命周期
- Django3+websocket+paramiko实现web页面实时输出