程序员人生 网站导航

Indri和Terrier搜索引擎的使用

栏目:互联网时间:2014-11-13 08:37:20

介绍

Indri和Terrier都是开源的搜索引擎,其中Indri作为Lemur项目的1个重要部份,具有强大的查询接口,易建索引,可扩大,高效力等优点。可以在SourceForge Lemur Project Page中下载。Terrier也是IR领域非常有影响力的开源搜索引擎,Terrier是Glasgow大学用Java语言编写的,具有高效灵活及易于部署等特点,目前最新的版本为Terrier 4.0,可在Terrier官网下载。

不管Indri还是Terrier全部进程,需要先建立索引,然后根据自定义的query phrases(查询短语,固然也能够是句子),在已建立的索引上查询,并返回1个结果,类似以下(后面会具体讲授每列的含义):

两个搜索引擎的使用关键在于它们的配置文件,接下来说解如何配置

文本格式

<DOC> <DOCNO>2011⑴2-05⑵0_1323118648⑺cfd066125ff1daf479748f81346895d</DOCNO> <date>12/05/2011 (MM/DD/YYYY)</date> <SOURCE>arxiv</SOURCE> <TEXT> S and Î? production in pp interactions at â??s = 0.9 and 7 TeV measured with the....</TEXT> </DOC>



1、Indri

Indri建索引

<parameters> <memory>16G<memory> <index>path/to/index</index> //建完索引后,这些索引结果文件寄存的位置,如/home/tempUser/myindex <stemmer> <name>krovetz</name> //词干化工具,也即分词,这个是默许的,可以选择其他的 </stemmer> <corpus> <path>path/to/original/file/directory</path> //原始需要建立索引的文件目录 <class>trectext</class> //需要建立甚么格式的索引,有xml, txt, trectext, web </corpus> <field> <name>DOCNO</name> //文本ID号 </field> <field> //如果需要用到时间信息,需加此field, <name>date</name> <numeric>true</numeric> <parserName>DateFieldAnnotator</parserName> </field> </parameters>



Indri查询

配置文件
<span style="font-size:14px;"><parameters> <index>path1/to/index</index> <index>path2/to/index</index> <rule>method:dirichlet,mu:1000</rule> //内置方法,用狄利克雷,参数值1000 <count>1000</count> //每一个查询值返回1000条记录,可以自己设置 <query> //第1个查询 <number>001</number> //编号自己定义 //如果文本的发布日期在两个时间段之间的,则在其文本中查询“Abbotsford Arts Centre”,根据其内置算法,计算query phrases与文本的相干度值 <text>#scoreif(#datebetween(10/05/2011 01/26/2012) #1(Abbotsford Arts Centre))</text> </query> <query> //第2个查询 <number>003</number> <text>#scoreif(#datebetween(10/05/2011 08/08/2012) #1(Andy Billig))</text> </query> <trecFormat>true</trecFormat> <queryOffset>1</queryOffset> <runID>query_id</runID> //自定义queryID </parameters></span>



Indri查询语言
1、Combining Beliefs
#combine,#weight, #not, #max, #or, #band(boolean and)
#wsum, #wand(weighted and)
#weight( 1 #1(Abbotsford Arts Centre)  0.5 #1(office) 0.5 #1(band))

2、Filter Operators
scoreif(#datebetween(10/05/2011 01/26/2012)  #1(Abbotsford Arts Centre)) 

3、Numeric Field Operator
#less( F N ) matches numeric field extents of type Fif value < N
#greater( F N ), #between(F N_low N_high ) , #equals(F N )

4、Date Field Operator
#dateafter( D ),
#datebefore( D ),
#datebetween( D_low D_high ),
#dateequals( D )

查询结果文件:


其中:
第1列:表示第003query
第2列:不用理睬
第3列:DOCNO
第4列:排名
第5列:具体排序值
第6列:query_id

Terrier

未完待续



------分隔线----------------------------
------分隔线----------------------------

最新技术推荐