2016-07-29 2 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 

나는 동일한 API를 제공하지 않습니다 너무 때문에 Lucy::SimpleLucy::Index::Indexer을 혼동했다. path=>::Simple이고, index=>::Indexex입니다. 그리고이 두 번째 디렉토리를 만들 수 있습니다.

$indexer = Lucy::Index::Indexer->new(
schema => $schema, 
index => $outIndex, 
create => 1, 
truncate =>0, 
); 
관련 문제