623f3a2c84
First draft introducing solr into Koha :-) List of files : $ tree t/searchengine/ t/searchengine |-- 000_conn | `-- conn.t |-- 001_search | `-- search_base.t |-- 002_index | `-- index_base.t |-- 003_query | `-- buildquery.t |-- 004_config | `-- load_config.t `-- indexes.yaml just do `prove -r t/searchengine/**/*.t` t/lib |-- Mocks | `-- Context.pm `-- Mocks.pm provide a mock to SearchEngine syspref (set_zebra and set_solr). $ tree Koha/SearchEngine Koha/SearchEngine |-- Config.pm |-- ConfigRole.pm |-- FacetsBuilder.pm |-- FacetsBuilderRole.pm |-- Index.pm |-- IndexRole.pm |-- QueryBuilder.pm |-- QueryBuilderRole.pm |-- Search.pm |-- SearchRole.pm |-- Solr | |-- Config.pm | |-- FacetsBuilder.pm | |-- Index.pm | |-- QueryBuilder.pm | `-- Search.pm |-- Solr.pm |-- Zebra | |-- QueryBuilder.pm | `-- Search.pm `-- Zebra.pm How to install and configure Solr ? See the wiki page: http://wiki.koha-community.org/wiki/SearchEngine_Layer_RFC http://bugs.koha-community.org/show_bug.cgi?id=8233 Signed-off-by: Chris Cormack <chris@bigballofwax.co.nz>
45 lines
1.3 KiB
Perl
45 lines
1.3 KiB
Perl
use Modern::Perl;
|
|
use Test::More;
|
|
use C4::Context;
|
|
|
|
use Koha::SearchEngine;
|
|
use Koha::SearchEngine::QueryBuilder;
|
|
use t::lib::Mocks;
|
|
|
|
my $titleindex = "title";
|
|
my $authorindex = "author";
|
|
#my $eanindex = "str_ean";
|
|
#my $pubdateindex = "date_pubdate";
|
|
|
|
my ($operands, $indexes, $operators);
|
|
|
|
|
|
# === Solr part ===
|
|
@$operands = ('cup', 'rowling');
|
|
@$indexes = ('ti', 'au');
|
|
@$operators = ('AND');
|
|
|
|
set_solr;
|
|
my $qs = Koha::SearchEngine::QueryBuilder->new;
|
|
|
|
my $se = Koha::SearchEngine->new;
|
|
is( $se->name, "Solr", "Test searchengine name eq Solr" );
|
|
|
|
my $gotsolr = $qs->build_advanced_query($indexes, $operands, $operators);
|
|
my $expectedsolr = "ti:cup AND au:rowling";
|
|
is($gotsolr, $expectedsolr, "Test build_query Solr");
|
|
|
|
|
|
# === Zebra part ===
|
|
set_zebra;
|
|
$se = Koha::SearchEngine->new;
|
|
is( $se->name, "Zebra", "Test searchengine name eq Zebra" );
|
|
$qs = Koha::SearchEngine::QueryBuilder->new;
|
|
my ( $builterror, $builtquery, $simple_query, $query_cgi, $query_desc, $limit, $limit_cgi, $limit_desc, $stopwords_removed, $query_type ) = $qs->build_query($operators, $operands, $indexes);
|
|
my $gotzebra = $builtquery;
|
|
my $expectedzebra = qq{ti,wrdl= cup AND au,wrdl= rowling };
|
|
is($gotzebra, $expectedzebra, "Test Zebra indexes in 'normal' search");
|
|
# @and @attr 1=title @attr 4=6 "des mots de mon titre" @attr 1=author Jean en PQF
|
|
|
|
|
|
done_testing;
|