Koha/t/searchengine/003_query/buildquery.t
Jonathan Druart 623f3a2c84 Bug 8233 : SearchEngine: Add a Koha::SearchEngine module
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>
2012-07-06 16:51:58 +02:00

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;