2016-08-22 66 views
0

我在写一个perl脚本来从Xapian数据库中检索搜索结果。用Perl获取具体数据表Xapian数据库

我使用搜索:: Xapian模块并尝试了基本的Xapian Query Example。这个基本程序允许查询并获得按相关性排序的结果数组。我的问题是,get_data()方法将文档(url,filname,abstract,author,...)中的全部数据作为字符串混合在一起。

我在CPAN module中搜索了一种方法来逐个获取每个数据,但我没有找到它。

是否有可能获取文件名,网址,作者,...一个接一个地把它们放在一个特定的变量中?

+0

显示你的代码产生这样的输出 –

+0

'GET_DATA()'是故意不透明的Xapian。无论你放在那里,你都会走出去;不同的语言可以更容易地使用不同的格式。 JSON,YAML,TOML和XML都是可行的。 'omindex'和'scriptindex'然而使用_sui generis_格式,您可以通过在行结尾分割然后在'='分割以创建键/值对来读取。 –

回答

0

您尚未发布产生该代码的代码或设置的详细信息。见simplesearch.pl例子,而不是把它打印出来,分配给你想给一个变量是什么:

# Display the results. 
printf "%i results found.\n", $mset->get_matches_estimated(); 
printf "Results 1-%i:\n", $mset->size(); 

foreach my $m ($mset->items()) { 
    printf "%i: %i%% docid=%i [%s]\n", $m->get_rank() + 1, $m->get_percent(), $m->get_docid(), $m->get_document()->get_data(); 
}