java 分布式 搜索引擎_GitHub - jiangvv/iveely: Iveely Search Engine 是由纯Java实现,依靠Iveely.Framework和Iveely.Comp...

iveely

Iveely Search Engine 是由纯Java实现,依靠Iveely.Framework和Iveely.Computing实现的分布式搜索(知识)引擎。

当前最新版本:0.7.0 。

如果您希望0.8.0能够正式对外提供,我们希望您能够通过支付宝(iveely@qq.com)、Paypal(liufanping@iveely.com)捐助我们,以使得我们把0.8.0正式运行起来,诚挚的谢意。

主要包含以下功能模块:

A. 文本检索(Web & Mobile)。

B. 图片检索(Web only)。

C. 百科检索(Web only)。

D. 问答检索(Web & Mobile)。

主要包含技术模块:

A. Iveely.Framework:基础模块。

B. Iveely.Computing:程序运行平台。

C. Iveely.Search: 搜索技术模块。

D. Iveely.Search.UI: 网页搜索模块。

E. Iveely.Search.Mobile: 移动客户端搜索模块。

1.示例截图

1.1 文本检索

687474703a2f2f7777772e697665656c792e636f6d2f302e372e302f77656e62656e312e706e67

1.2 图片检索

687474703a2f2f7777772e697665656c792e636f6d2f302e372e302f696d616765312e706e67

1.3 百科检索

687474703a2f2f7777772e697665656c792e636f6d2f302e372e302f6261696b65312e706e67

1.4 问答检索

687474703a2f2f7777772e697665656c792e636f6d2f302e372e302f77656e6461312e706e67

687474703a2f2f7777772e697665656c792e636f6d2f302e372e302f77656e646132706e672e706e67

1.5 移动客户端

687474703a2f2f7777772e697665656c792e636f6d2f302e372e302f6d6f62696c652e706e67

2. 编译部署

2.1 编译工具

编译工具可以采用任何编译器,但是上传的文件中是按照Netbeans开发上传,且JDK要求为1.8及其以上。

2.2 部署(含多机器和单机部署-windows,linux类似)

您可以在 https://onedrive.live.com/?cid=46338B55F029D384&id=46338B55F029D384%21140 中下载对应版本的示例程序(Iveely Computing 0.7.0 Release demo.rar),下周解压之后:

687474703a2f2f7777772e697665656c792e636f6d2f302e372e302f3030312e706e67

上图中各个文件夹的含义如下:

Console: 用户控制台。

Master: Iveely的Master结点。

Slave-7001:该机器上的7001端口服务结点。

Slave-7002:该机器上的7002端口服务结点。

这是一个单机运行的情况,如果是多机器情况,则Slave-7001和Slave-7002可拷贝到更多的机器中。其余操作方法均如下:

第一步,启动Master。

运行参数:master 127.0.0.1 9010

“master”表示是master结点,127.0.0.1表示当前Master地址,9010表示Master服务端口。windows下可以双击“RunMaster.bat”.

效果如下:

687474703a2f2f7777772e697665656c792e636f6d2f302e372e302f3030322e706e67

第二步,启动Slave。

运行参数:slave 127.0.0.1 9010 7001

“slave”表示是slave结点,127.0.0.1表示Master地址,9010是Master服务端口,7001是slave服务短裤。

效果如下:

687474703a2f2f7777772e697665656c792e636f6d2f302e372e302f3030332e706e67

第三步,启动Console。

当当前机器或更多机器的master和slave结点均已经启动的情况下,运行Console,运行参数:console 127.0.0.1 9010

"console"表示当前是用户控制台,127.0.0.1是master结点地址,9010是master端口。

2.3 有效的Console指令

既然有用户控制台,那么一定有有效的指令。

2.3.1 提交app到Iveely.computing。

format:upload [your app folder]

示例:

687474703a2f2f7777772e697665656c792e636f6d2f302e372e302f3030342e706e67

2.3.2 在Iveely.Computing上执行App。

format:run [your app name] [count]

第三个参数 count 表示在几个机器结点上执行 示例:

687474703a2f2f7777772e697665656c792e636f6d2f302e372e302f3030352e706e67

运行结果,在每一个slave上都会打印:

687474703a2f2f7777772e697665656c792e636f6d2f302e372e302f3030362e706e67

2.3.3 在Iveely.Computing上其它指令。

format:list ,表示查看所有app。

format:slaves ,表示查看所有Iveely.Computing上的运行机器结点。

当然这是常用的指令,还有更多指令,期待您在代码中发现。

2.4 运行示例中的搜索引擎

当Iveely.Computing的master和salve均启动起来之后,运行:

第一步:run Iveely.Search.DataService

第二步: run Iveely.Search.UIService 1

对于第二步,一定要注意后面有一个1,只需要在一个结点上运行。

第三步:修改 https://github.com/Fanping/iveely/blob/master/Iveely.Search.WebUI/JS/query.js 中最顶层的地址,端口不变,服务器地址改为UIService运行结点的IP,怎么看?用list命令即可看到。

如果从头运行,不需要示例中的准备数据,请删除文件夹下的Service_Text_Data和Service_Image_Data,然后部署好Iveely.Computing,运行命令:run Iveely.Search.Backstage.其次再运行上面的第一步、第二步、第三步。这点很重要。

3.怎么写基于Iveely.Computing的app?

难以想象的简单:

写一个类,添加一个函数: public String invoke(String arg) { ... } 并打包成jar。

程序被Iveely.Computing执行的时候会调此方法,但是如何让Iveely.Computing识别到它?

在jar同在目录下,新建一个文件app.run这是程序的配置文件,配置信息大致如下:

"

jar:HelloWorld.jar

class:helloworld.MyHelloWorld

params:NULL

cycle:daily

"

jar表示指定运行的jar,class是invoke方法所在的class,params是你想给他指定的参数,会是invoke的输入参数,cycle是运行周期,这里标识是每天运行一次。还有hourly,always,weekly。

至此,您已经了解了最基本的信息,如果有疑问,欢迎您联系我liufanping@iveely.com,或是发现bug,请您直接在issue中描述,谢谢!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值