2016-07-29 12 views
0

私は、テキストファイルを含むフォルダのインデックスを作成し、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

あなたは最初のパスのディレクトリを作成する必要があります。

mkdir /home/akpinar/Desktop/lucyindex/text 

Lucy::SimpleLucy::Index::Indexerは同じAPIを与えていないので、私があまりにも混乱していました。 path=>::Simpleindex=>::Indexex。 そして、この2番目のディレクトリを作成することがあります。

$indexer = Lucy::Index::Indexer->new(
schema => $schema, 
index => $outIndex, 
create => 1, 
truncate =>0, 
); 
関連する問題