
jack_tanner at yahoo
Apr 16, 2008, 7:34 AM
Post #2 of 5
(1082 views)
Permalink
|
One bug in your script is your indexing into @ARGV. $ARGV[0] is not the first parameter to the script, it's the script filename itself. Try this: print join (', ', @ARGV) . "\n"; ----- Original Message ---- > From: Riyaad Miller <riyaad.miller [at] predix> > To: kinosearch [at] rectangular > Sent: Wednesday, April 16, 2008 9:49:33 AM > Subject: [KinoSearch] Using QueryFilter and BooleanQuery > > Hi guys > > Thanks for your previous reply. > > I've installed KinoSearch ver. 0.162. Could you please confirm the QueryFilter > is NOT available in this release (0.162)? > > With regards to BooleanQuery, I've put together the following command line > script using ver. 0.162. > > When entering 'perl' as my first arg and nutshell as my second (my code should > exclude results contain 'nutshell') > but for some strange reason it still returns the results with 'nutshell' in > them. Could you please tell me what am I doing wrong here? > > Appreciated. > > > ----------------------------------------- > > use KinoSearch::Searcher; > use KinoSearch::Analysis::PolyAnalyzer; > use KinoSearch::Highlight::Highlighter; > use KinoSearch::Search::QueryFilter; > use KinoSearch::Search::BooleanQuery; > > $incl = $ARGV[0]; > $incl = '' unless defined $incl; > > $excl = $ARGV[1]; > $excl = '' unless defined $excl; > > print "find $incl but exclude $excl\n"; > > print "." x 80 . "\n"; > > $invIndexDirectory = '/tmp/KinoSearchIndex'; > > $analyzer = KinoSearch::Analysis::PolyAnalyzer->new(language => 'en'); > > $searcher = KinoSearch::Searcher->new( > analyzer => $analyzer, > invindex => $invIndexDirectory > ); > > $bool_query = KinoSearch::Search::BooleanQuery->new; > > $include = KinoSearch::Search::TermQuery->new(term => > KinoSearch::Index::Term->new('bodytext',$incl)); > $bool_query->add_clause(query => $include, occur=>'MUST'); > $exclude = KinoSearch::Search::TermQuery->new(term => > KinoSearch::Index::Term->new('bodytext',$excl)); > $bool_query->add_clause(query => $exclude, occur=>'MUST_NOT'); > > $hits = $searcher->search( > query => $bool_query, > ); > > $highlighter = KinoSearch::Highlight::Highlighter->new(excerpt_field => > 'bodytext'); > $hits->create_excerpts(highlighter => $highlighter); > > print "-" x 80 . "\n"; > > while ($hit = $hits->fetch_hit_hashref) > { > print "Title: $hit->{title}\n"; > print "URL : $hit->{url}\n"; > print "Exc : $hit->{excerpt}\n"; > printf "Score: %0.3f\n", $hit->{score}; > print "-" x 80 . "\n"; > } > > > -------End------- > > > _______________________________________________ > KinoSearch mailing list > KinoSearch [at] rectangular > http://www.rectangular.com/mailman/listinfo/kinosearch > ____________________________________________________________________________________ Be a better friend, newshound, and know-it-all with Yahoo! Mobile. Try it now. http://mobile.yahoo.com/;_ylt=Ahu06i62sR8HDtDypao8Wcj9tAcJ _______________________________________________ KinoSearch mailing list KinoSearch [at] rectangular http://www.rectangular.com/mailman/listinfo/kinosearch
|