通用搜索技术试验报告一文成2150230509.docx
《通用搜索技术试验报告一文成2150230509.docx》由会员分享,可在线阅读,更多相关《通用搜索技术试验报告一文成2150230509.docx(12页珍藏版)》请在冰豆网上搜索。
通用搜索技术试验报告一文成2150230509
深圳大学
实验报告
课程名称:
通用搜索技术
实验名称:
熟悉UMAD并测试vector和dna数据
姓名:
文成
学号:
2150230509
班级:
15级软件工程
实验日期:
2015-10-29
一.实验目的
1)熟练掌握UMAD的配置和使用方法
2)熟悉UMAD项目中的主要参数
3)对vector和dna数据进行测试
二.实验任务
1、对vector数据类型,以两种不同的buildMode(值为0或1)方式建立10万,20万,30万,40万和50万数据大小的索引,并对索引用两种不同的searchMode(值为0或1)进行搜索。
2、对dna数据类型,以两种不同的buildMode(值为0或1)方式建立10万,20万,30万,40万和50万数据大小的索引,并对索引用两种不同的searchMode(值为0或1)进行搜索。
3、列出实验过程中遇到的各种问题,例如对帮助文档的修改意见等。
三.实验内容
1、获取UMAD及其相关的开发环境和数据,并对UMAD进行正确配置。
(1)在
(2)在C++DevelopmentSettings”。
(3)在
数据类型
文件名
数据大小
Vector
uniformvector-20dim-1m.txt
1000000
Image
allfeas.dat
10000
String
English.dic
60000
DNA
arab1.con
500000
Peptide
nrall.fasta
1000000
表1
将上述对应的五个数据文件放到“UMAD\SourceFiles\util\data”文件夹下。
至此,UMAD运行所需的开发环境和数据文件等都已经准备完成。
(4)配置GSL。
方法如下:
在UMAD中,将SourceFiles/util/GSL/bin中的libgsl-0.dll和libgslcblas-0.dll复制到“VS2012安装的目录/VC/bin”下(比如:
D:
\userProgramFiles\MicrosoftVisualStudio11.0\VC\bin);将SourceFiles/util/GSL/include整个目录下的文件复制到“VS2012安装的目录/VC/include”下(比如:
D:
\userProgramFiles\MicrosoftVisualStudio11.0\VC\include);将SourceFiles/util/GSL/lib目录下的所有.lib文件全部复制到“VS2012安装的目录/VC/lib”下(比如:
D:
\userProgramFiles\MicrosoftVisualStudio11.0\VC\Lib)。
2、采用默认形式运行UMAD。
(1)进入UMAD目录下,双击打开UMAD.sln文件
,如果需要显示文件扩展名,则在
首先,打开UMAD项目。
其次,打开“Debug”“UMADProperties”,如图所示:
在打开的“UMADPropertiesPages”界面中,选择导航栏左侧的“Debugging”,之后在右侧的“CommandArguments”中清除现有的参数(使CommandArguments的值为空),完成上述步骤之后,点击“确定”。
如图所示:
之后,按下图点击运行即可。
此时,是采用默认的形式(运行模式是建树和搜索两个过程,数据类型为vector,读取的数据大小为20000,查询点的个数为1,最大半径为2)。
运行后,建立的索引文件在“SourceFiles\util\database”文件夹下,文件名为“vector_index_PivotWise”,而运行的结果文件在“SourceFiles\util\result”文件夹下,文件名为
“buildAndSearch_vector_datasize_20000_dim_20_numPivot_2_singlePivotFanout_3_buildMode_0_searchMode_1.txt”。
在该文件中包括了建立索引所需要的时空消耗以及对本索引进行搜索的结果。
3、对vector和dna两种数据类型进行测试。
下面仅仅给出测试样例,请大家严格按照以下步骤进行操作。
首先给出输入参数界面以及输入参数的方法,之后,分别以vector和dna两种数据类型为例,说明他们的参数使用方法。
Vector和dna数据类型都有两种不同的操作,即建立索引和对索引进行搜索。
关于参数的详细介绍可以在http:
//umad.5520.pw/umad_Introduce/index.html页面获得。
(1)打开输入参数界面并输入参数,步骤如下:
首先,打开UMAD项目。
其次,打开“Debug”“UMADProperties”,在打开的“UMADPropertiesPages”界面中,选择导航栏左侧的“Debugging”,之后在右侧的“CommandArguments”中输入参数,完成上述步骤之后,点击“确定”。
在建立索引和对索引进行搜索的时,都会有indexName这个参数,一定要保证参数indexName的一致性,即两个参数的参数值要一样。
(2)Vector类型
Build(建立索引)的过程
--runOptionbuild--buildMode0--indexNamevector_1000_20dim_0--nuniformvector-20dim-1m.txt--dim20--v2--f3--psmfft--dpmbalanced--m100--tvector--eMVPIndex--init1000--F1000--s2000--resresults_build_vector_fft_balanced_MVPIndex_v2_f3_dim20_i1000.txt
将上述的参数复制到“commandArguments”中即可运行。
对参数的说明如下:
buildMode(值为0或1),indexName(参数值的格式为“数据类型_数据大小_维度_建立索引的方式”,比如vector_1000_20dim_0)
参数n规定了该数据类型对应的数据文件,参数t指明了数据类型,对于数据类型和对应的数据文件及其大小,在“表1”中已有说明。
init和F这两个参数要写成一致的大小,这两个参数规定了从文件中读取的数据大小,切记不可以超过数据文件的最大值。
其他在上述没有提到的参数,则不需要修改,而且,参数n和t在测试vector时,也不需要更改。
按照上述的参数建立的索引是大小为1000,数据类型为vector的索引。
索引文件存放在database文件下下,测试结果文件存在result文件夹下(上面已经说明,此处不再啰嗦)。
Search(对索引进行搜索)的过程:
--runOptionsearch--searchMode1--indexNamevector_1000_20dim_1000--nuniformvector-20dim-1m.txt--dim20--tvector--quniformvector-20dim-1m.txt--fq0--l10--a2--i0--y0.25--ver0--init1000--resresults_search_vector_outside_20dim_init10000_fq0_l100_a2_i0_y0.25_ver0.txt
将上述的参数复制到“commandArguments”中即可运行。
对参数的说明如下:
参数searchMode有两个值(0或者1),参数indexName必须与建立索引时的文件名称一样,比如:
建立的索引名为“vector_1000_20dim_0”,则对该索引进行搜索时,indexName也要写成“vector_1000_20dim_0”,换句话说,indexName指定了你要对已经建好的哪个索引进行操作。
如果你输入的indexName值并没有在“SourceFiles\util\database”文件夹下存在,则会搜索不到任何的东西。
参数n和参数q也需要保持一致,即值相等。
参数init指出了本次搜索中,索引中的数据量大小,与建立索引时的init参数具有一样的作用。
其他没有提及的参数就不用修改。
(2)DNA类型
Build(建立索引)的过程
--runOptionbuild--buildMode1--indexNamedna_1000_18dfrag_0--narab1.con--frag18--v2--f3--psmfft--dpmbalanced--m100--tdna--eMVPIndex--init1000--F1000--s2000--resresults_build_dna_leaftoroot_fft_balanced_MVPIndex_v2_f3_frag18_init1000.txt
将上述的参数复制到“commandArguments”中即可运行。
对参数的说明如下:
buildMode(值为0或1),indexName(参数值的格式为“数据类型_数据大小_维度_建立索引的方式”,比如vector_1000_20dim_0)
参数n规定了该数据类型对应的数据文件,参数t指明了数据类型,对于数据类型和对应的数据文件及其大小,在“表1”中已有说明。
init和F这两个参数要写成一致的大小,这两个参数规定了从文件中读取的数据大小,切记不可以超过数据文件的最大值。
其他在上述没有提到的参数,则不需要修改,而且,参数n和t在测试vector时,也不需要更改。
按照上述的参数建立的索引是大小为1000,数据类型为vector的索引。
索引文件存放在database文件下下,测试结果文件存在result文件夹下。
Search(对索引进行搜索)的过程:
--runOptionsearch--searchMode1--indexNamedna_1000_18dfrag_0--narab1.con--frag18--tdna--qarab1.con--fq0--l10--a10--i0--y1--ver0--init1000--resresults_search_dna_outside_frag18_init1000_fq0_l10_a10_i0_y1_ver0.txt
将上述的参数复制到“commandArguments”中即可运行。
对参数的说明如下:
参数searchMode有两个值(0或者1),参数indexName必须与建立索引时的文件名称一样,比如:
建立的索引名为“vector_1000_20dim_0”,则对该索引进行搜索时,indexName也要写成“vector_1000_20dim_0”,换句话说,indexName指定了你要对已经建好的哪个索引进行操作。
如果你输入的indexName值并没有在“SourceFiles\util\database”文件夹下存在,则会搜索不到任何的东西。
参数n和参数q也需要保持一致,即值相等。
参数init指出了本次搜索中,索引中的数据量大小,与建立索引时的init参数具有一样的作用。
其他没有提及的参数就不用修改。
以上即是对vector和dna两种数据类型的使用说明。
备注:
由于数据量大的原因,所以运行的时间较长。
请大家完成以上规定的测试任务。
四.实验过程与实验结果
安装VS后,采用默认形式运行UMAD.sln
按照指引进行操作,完成相关配置,熟悉一下UMAD。
(1)对vector数据类型进行测试
Build(建立索引)的过程
--runOptionbuild--buildMode0--indexNamevector_1000_20dim_0--nuniformvector-20dim-1m.txt--dim20--v2--f3--psmfft--dpmbalanced--m100--tvector--eMVPIndex--init1000--F1000--s2000--resresults_build_vector_fft_balanced_MVPIndex_v2_f3_dim20_i1000.txt
将上述的参数复制到“commandArguments”中即可运行。
点击下面这个按钮
建立的索引文件在“SourceFiles\util\database”文件夹下,文件名为“vector_index_PivotWise”,而运行的结果文件在“SourceFiles\util\result”文件夹下,文件名为
果然如此,产生了一系列的文件。
Search(对索引进行搜索)的过程:
--runOptionsearch--searchMode1--indexNamevector_1000_20dim_1000--nuniformvector-20dim-1m.txt--dim20--tvector--quniformvector-20dim-1m.txt--fq0--l10--a2--i0--y0.25--ver0--init1000--resresults_search_vector_outside_20dim_init10000_fq0_l100_a2_i0_y0.25_ver0.txt
将上述的参数复制到“commandArguments”中即可运行。
貌似出了一点小问题。
对vector数据类型,以两种不同的buildMode(值为0或1)方式建立10万,20万,30万,40万和50万数据大小的索引
因为indexName(参数值的格式为“数据类型_数据大小_维度_建立索引的方式”,比如vector_1000_20dim_0)
所以只需要分别修改参数
vector_1000000_20dim_0
vector_2000000_20dim_0
vector_3000000_20dim_0
(2)对DNA数据进行测试
Build(建立索引)的过程
--runOptionbuild--buildMode1--indexNamedna_1000_18dfrag_0--narab1.con--frag18--v2--f3--psmfft--dpmbalanced--m100--tdna--eMVPIndex--init1000--F1000--s2000--resresults_build_dna_leaftoroot_fft_balanced_MVPIndex_v2_f3_frag18_init1000.txt
将上述的参数复制到“commandArguments”中即可运行。
从修改日期中可以发现,文件发生了变化。
Search(对索引进行搜索)的过程:
--runOptionsearch--searchMode1--indexNamedna_1000_18dfrag_0--narab1.con--frag18--tdna--qarab1.con--fq0--l10--a10--i0--y1--ver0--init1000--resresults_search_dna_outside_frag18_init1000_fq0_l10_a10_i0_y1_ver0.txt
貌似出了一点小问题。
对dna数据类型,以两种不同的buildMode(值为0或1)方式建立10万,20万,30万,40万和50万数据大小的索引
indexName(参数值的格式为“数据类型_数据大小_维度_建立索引的方式”,比如vector_1000_20dim_0)
所以只需要分别修改参数:
--indexNamedna_100000_18dfrag_0
--indexNamedna_200000_18dfrag_0
--indexNamedna_300000_18dfrag_0
--indexNamedna_400000_18dfrag_0
--indexNamedna_500000_18dfrag_0
五.实验总结
经过这次实验,我接触到了UMAD。
这次实验我主要都是按照实验指引进行操作的,关于这个搜索还不太明白,这个实验在做些什么我也不是很清楚。
最终就是配置了一下VS,运行一下程序,还产生了很多错误。
按照实验要求,修改了一些参数还是挺简单的,但最终结果好像有点问题。
做完这个实验后,我感觉到这门课程是有着很深的学问的。