文章阅读页通栏

如何运行属于你的IPFS搜索引擎

来源: 四块云科技 作者:四块科技
Lens是分布式Web的搜索引擎,是一个开源IPFS工具,允许从IPFS获取内容,并将其编入索引以便日后搜索。目前Lens可以索引以下mime类型:其中的一个要求就是......
Lens是分布式Web的搜索引擎,是一个开源IPFS工具,允许从IPFS获取内容,并将其编入索引以便日后搜索。目前Lens可以索引以下mime类型:其中的一个要求就是所有数据都存在IPFS上,并且可由正在运行的Lens实例发现。将来我们可能会增加对其他分布式网络的支持,例如DAT或SWARM。为了与Lens交互,我们有一个简单但强大的gRPCAPI,支持简单和复杂的查询。

text/*
image/*
application/pdf

索引如何运行

我们有几种不同的方法来分析我们将链接在一起的数据。当给定PDF时,我们首先尝试从页面中提取图像和文本。该文本提供给bleve,它能够处理简单和复杂的搜索查询?;故褂肨esseract进行光学字符识别以提取可搜索文本,并使用Tensorflow进行图像的基本分类,对图像进行分析。在分析其他mime类型(如image/ *)时,我们尝试执行相同的Tesseract和图像分类分析,就像我们从PDF中提取的图像一样。在分析像text/ *这样的mime类型时,我们直接将文本提供给bleve。

搜索如何进行

搜索最起码包括查询,从区块链之类的单个单词,到区块链数据存储之类的搜索短语。我们还支持更复杂的查询,例如针对特定标签,类别,mime类型等进行筛选,但这些查询完全是可选的。

响应查询的是一个文档数组,其中包含与您的查询匹配的内容的IPFS哈希值,内容的mimetype,以及显示此内容与您的搜索查询的相关性的匹配分数。

塑米网 www.gd-yongfeng.com 安装Lens

您可以通过几种不同的方式安装镜头,最简单的方法是使用我们预先搭建的Lensdocker镜像。使用docker镜像时,默认设置是启动gRPC服务器监听0.0.0.0:9998,没有任何加密,并使用ghPC身份验证密钥blahblahblah。docker容器还需要连接到IPFSHTTP API,默认值为127.0.0.1:5001。要安装此docker镜像,请运行以下命令dockerpull rtradetech / lens:latest

或者对于那些想要更多移动设置的人来说,我们有一个docker-compose设置,它也可以运行所需的IPFS节点。要使用此docker-compose文件,需要运行以下命令集。这些将使用/tmp目录作为存储所有文件的基本目录。
$> wget -O lens.yml https://raw.githubusercontent.com/RTradeLtd/Lens/master/lens.yml
$> LENS=latest BASE=/tmp docker-compose -f lens.yml up

使用Lens

在我们开始介绍如何使用Lens之前,我们已经发布了现有的Lens索引,如https://temporal.cloud/lens所见,可通过IPFS下载,可以通过CIDQmZqSYDQrtWg4LHnqT6DPqa1XUr7u430aGcyaTiGHJY3SR下载。它的大小为1.2GB,包含各种研究论文,加密白皮书,我已提交,当然也有其他用户提交的文件。

所有索引和搜索都可以通过gRPCAPI完成,我们已经在github上发布了协议缓冲区。您可以使用支持协议缓冲区的任何语言为Lens构建API!

有关我们如何使用这些协议缓冲区构建Temporal中的LensAPI客户端的示例,您可以查看我们的Golang示例:


package clients

import (

"fmt"

"github.com/RTradeLtd/config/v2"

"github.com/RTradeLtd/grpc/dialer"

pb "github.com/RTradeLtd/grpc/lensv2"

"google.golang.org/grpc"

"google.golang.org/grpc/credentials"

)



const (

defaultURL = "127.0.0.1:9998"

)

// LensClient is a lens client used to make requests to the Lens gRPC server

type LensClient struct {

conn *grpc.ClientConn

pb.LensV2Client

}



// NewLensClient is used to generate our lens client

func NewLensClient(opts config.Services) (*LensClient, error) {

dialOpts := make([]grpc.DialOption, 0)

if opts.Lens.TLS.CertPath != "" {

creds, err := credentials.NewClientTLSFromFile(opts.Lens.TLS.CertPath, "")

if err != nil {

return nil, fmt.Errorf("could not load tls cert: %s", err)

}

dialOpts = append(dialOpts,

grpc.WithTransportCredentials(creds),

grpc.WithPerRPCCredentials(dialer.NewCredentials(opts.Lens.AuthKey, true)))

} else {

dialOpts = append(dialOpts,

grpc.WithInsecure(),

grpc.WithPerRPCCredentials(dialer.NewCredentials(opts.Lens.AuthKey, false)))

}

var url string

if opts.Lens.URL == "" {

url = defaultURL

} else {

url = opts.Lens.URL

}



conn, err := grpc.Dial(url, dialOpts...)

if err != nil {

return nil, err

}

return &LensClient{

conn: conn,

LensV2Client: pb.NewLensV2Client(conn),

}, nil

}



// Close shuts down the client's gRPC connection

func (l *LensClient) Close() { l.conn.Close() }
实际索引数据,一旦你的gRPC客户端启动并运行,你需要做的只是那个叫做索引的命令,让Lens发挥其魔力!根据内容在网络中的位置,此过程可能需要一段时间。一般来说,如果内容是本地可用的,则索引分析不应超过一分钟,通常为30秒。提交索引数据时,必须提供两个参数,ObjectType,它应使用协议缓冲区中定义的IndexReq_IPLD。第二个参数是ObjectIdentifier,它应该是您要索引的内容的IPFS哈希值。

搜索数据也非常简单,并且需要调用搜索命令。唯一必需的参数是Query,它定义了搜索数据的方式。(可?。┠梢允褂孟馠ashes这样的过滤器来筛选搜索结果,以便只匹配特定的IPFS哈希值,MimeTypes只匹配特定的mime类型。此命令完成所需的时间取决于多种因素,例如索引的大小,匹配的对象数,索引所在的磁盘速度。

关键词: IPFS  搜索引擎  
0/300
? 深圳代孕 | 珠海代孕 | 代孕包选性别价格 | 苏州代孕 | 圆梦代孕服务中心 | 广州代孕 | 广州代孕 | 高鹰代孕 | 看狗网 | 鹤壁新闻资讯网 | 湛江新闻资讯网 | 加勒比看书 | 广州代怀孕多少钱 |
  • 2018年新疆农作物耕种收综合机械化水平达84.68%
  • 精准微创实现癌症患者“无瘤生存”
  • 2019年首次!NASA宇航员为更换电池进行太空行走
  • 沪上“网红店”生意兴旺 台商把握商机不缺席
  • 宝丰县石桥镇:涓涓细流汇成河 社会扶贫结硕果
  • 陕西黄龙:生态立县 绿色发展
  • 马晓光:台胞可享受新税法优惠 台当局不实言论误导民众
  • 波音失事客机被指缺少关键设备 专家:安装毫不费力,但波音执意收费
  • 叶文 杭州是适合文创企业发展的一片沃土
  • 2019年,山西林草事业发展突出八个主题
  • 江苏省政府取消、下放一批审批事项
  • 首个电子束处理工业废水技术标准颁布
  • 养元饮品六个核桃院士工作站暨博士后科研工作站正式启动
  • 自治区测绘地理信息局驻村工作队引进“卫星工厂”助农脱贫致富
  • 甘肃省:乡村振兴——村美民富产业兴