我正在尝试使用文本文件索引文件夹,并使用lucy :: simple模块搜索包含单词的文件。 到目前为止,这是我的代码:
#!/usr/bin/perl
use strict;
use warnings;
use Lucy::Simple;
use Lucy::Search::IndexSearcher;
#make_path($ch_Index);
my $index = Lucy::Simple->new(
path => "/home/akpinar/Desktop/lucyindex/text",
language => 'en',
);
while ( my ( $title, $content ) = each my %source_docs ) {
my $index->add_doc({
title => $title,
content => $content,
});
}
#print "Indexation finie\n";
###requete
print "Veuillez taper votre requête : \n";
my $requete = <STDIN>;
chomp $requete ;
$requete=lc($requete);
my $nbTrouve = $index->search(
query =>$requete,
offset=>0,
num_wanted=>100,
);
print "Total hits: $nbTrouve\n";
while ( my $hit = $index->next ) {
print "$hit->{title}\n",
}
但我得到错误:
Failed to read seg_1
S_try_open_elements at core/Lucy/Index/PolyReader.c line 290
at lucyrequete.pl line 21, <STDIN> line 1.
eval {...} called at lucyrequete.pl line 21
lucy_PolyReader_do_open at core/Lucy/Index/PolyReader.c line 439
at lucyrequete.pl line 21, <STDIN> line 1.
有人知道我为什么会这样做吗?
答案 0 :(得分:0)
您需要先创建路径目录:
mkdir /home/akpinar/Desktop/lucyindex/text
我也感到困惑,因为Lucy::Simple
和Lucy::Index::Indexer
没有给出相同的api。
path=>
的{{1}}与::Simple
的{{1}}。
而且,这第二个可能会创建目录。
index=>