Iveely Search Engine 是由纯Java实现,依靠Iveely.Framework和Iveely.Computing实现的分布式搜索(知识)引擎。
当前最新版本:0.7.0 。
如果您希望0.8.0能够正式对外提供,我们希望您能够通过支付宝([email protected])、Paypal([email protected])捐助我们,以使得我们把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: 移动客户端搜索模块。
编译工具可以采用任何编译器,但是上传的文件中是按照Netbeans开发上传,且JDK要求为1.8及其以上。
您可以在 https://onedrive.live.com/?cid=46338B55F029D384&id=46338B55F029D384%21140 中下载对应版本的示例程序(Iveely Computing 0.7.0 Release demo.rar),下周解压之后:
![]()
上图中各个文件夹的含义如下:
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”.
效果如下:
![]()
第二步,启动Slave。
运行参数:slave 127.0.0.1 9010 7001
“slave”表示是slave结点,127.0.0.1表示Master地址,9010是Master服务端口,7001是slave服务短裤。
效果如下:
![]()
第三步,启动Console。
当当前机器或更多机器的master和slave结点均已经启动的情况下,运行Console,运行参数:console 127.0.0.1 9010
"console"表示当前是用户控制台,127.0.0.1是master结点地址,9010是master端口。
既然有用户控制台,那么一定有有效的指令。
format:run [your app name] [count]
第三个参数 count 表示在几个机器结点上执行 示例:
![]()
运行结果,在每一个slave上都会打印:
![]()
format:list ,表示查看所有app。
format:slaves ,表示查看所有Iveely.Computing上的运行机器结点。
当然这是常用的指令,还有更多指令,期待您在代码中发现。
当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.其次再运行上面的第一步、第二步、第三步。这点很重要。
难以想象的简单:
写一个类,添加一个函数: 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。
至此,您已经了解了最基本的信息,如果有疑问,欢迎您联系我[email protected],或是发现bug,请您直接在issue中描述,谢谢!