blob: 5918fd9395eff05c9d297da9cbab64bd7838c5aa [file] [log] [blame]
Nils Diewald5d1ffb42014-05-21 17:45:34 +00001package Korap::Search;
2use Mojo::Base 'Mojolicious::Controller';
3
4# This action will render a template
5sub remote {
6 my $c = shift;
Nils Diewald2329e1d2014-06-12 16:07:57 +00007 $c->layout('default');
8 $c->title('KorAP');
Nils Diewald5d1ffb42014-05-21 17:45:34 +00009
Nils Diewald7cad8402014-07-08 17:06:56 +000010 my $api = $c->config('KorAP')->{'api-0.1'};
11
12 # Todo: Support query building directly
13
Nils Diewald127c2932014-06-25 10:39:29 +000014 $c->stash(test_port => (
15 $c->req->url->to_abs->port == 6666 ||
Nils Diewald7cad8402014-07-08 17:06:56 +000016 $c->app->mode =~ m/^development|test$/) ? 1 : 0);
Nils Diewaldb40ddad2014-06-23 15:39:18 +000017
Nils Diewald2329e1d2014-06-12 16:07:57 +000018 if ((scalar $c->param('action') // '') eq 'inspect') {
Nils Diewald7cad8402014-07-08 17:06:56 +000019 my $url = Mojo::URL->new($api)->path('search');
Nils Diewald33e15552014-06-13 19:38:37 +000020
Nils Diewald02df9912014-06-03 16:08:07 +000021 $url->query({
Nils Diewald94bae912014-09-22 13:40:31 +000022 q => scalar $c->param('q') // '',
Nils Diewald02df9912014-06-03 16:08:07 +000023 ql => scalar $c->param('ql') // 'poliqarp'
24 });
Nils Diewald33e15552014-06-13 19:38:37 +000025
Nils Diewald7cad8402014-07-08 17:06:56 +000026 my $tx = $c->ua->build_tx(TRACE => $url);
Nils Diewald446fbe72014-09-02 17:13:40 +000027
28 $c->app->log->debug('Trace URL: ' . $url);
29 $c->app->log->debug('Trace Request: ' . $tx->req->url);
30
Nils Diewald7cad8402014-07-08 17:06:56 +000031 if (my $response = $c->ua->start($tx)->success) {
Nils Diewald02df9912014-06-03 16:08:07 +000032 $c->stash('search.query' => $response->json);
33 }
34 else {
Nils Diewald7cad8402014-07-08 17:06:56 +000035 $c->notify(error => 'Unable to trace query');
Nils Diewald02df9912014-06-03 16:08:07 +000036 };
37
38 $c->param(cutoff => 1);
Nils Diewald127c2932014-06-25 10:39:29 +000039 return $c->render(template => 'query_info');
Nils Diewald2329e1d2014-06-12 16:07:57 +000040 }
41
42 elsif ($c->param('snippet')) {
43 $c->layout('snippet');
Nils Diewald02df9912014-06-03 16:08:07 +000044 };
45
Nils Diewald5d1ffb42014-05-21 17:45:34 +000046 $c->render(template => 'search');
47};
48
Nils Diewald2329e1d2014-06-12 16:07:57 +000049
Nils Diewald5d1ffb42014-05-21 17:45:34 +0000501;
Nils Diewald02df9912014-06-03 16:08:07 +000051
52
53__END__
54
Nils Diewald2329e1d2014-06-12 16:07:57 +000055[{"shared":false,"id":1,"managed":true,"created":1401193381119,"stats":{"documents":196510,"tokens":51545081,"sentences":4116282,"paragraphs":2034752},"query":[{"@type":"korap:meta-filter","@value":{"@type":"korap:term","@field":"korap:field#corpusID","@value":"WPD"}}],"description":"Die freie Enzyklopädie","name":"Wikipedia","foundries":"base;corenlp;mate;mpt;opennlp;tt;xip"}]
Nils Diewald33e15552014-06-13 19:38:37 +000056
57
Nils Diewald33e15552014-06-13 19:38:37 +000058http://10.0.10.13:8070/api/v1/resource/matchInfo?id=match-WPD!WPD_NNN.02848-p1223-1224&f=mate&l=
59
60{"author":"Filzstift,Alexander Sommer,TheK","textClass":"freizeit-unterhaltung reisen","corpusID":"WPD","title":"Neuseeland","foundries":"xip xip/morpho xip/constituency xip/dependency corenlp corenlp/namedentities corenlp/namedentities/ne_dewac_175m_600 corenlp/namedentities corenlp/namedentities/ne_hgc_175m_600 mate mate/morpho mate/dependency connexor connexor/morpho connexor/syntax connexor/phrase treetagger treetagger/morpho base base/sentences base/paragraphs opennlp opennlp/morpho","tokenization":"opennlp#tokens","field":"tokens","startMore":false,"endMore":false,"docID":"WPD_NNN.02848","snippet":"<span class=\"context-left\"></span><span class=\"match\"><span title=\"mate/l:besonders\"><span title=\"mate/p:ADV\">Besonders</span></span> <span title=\"mate/l:auffällig\"><span title=\"mate/m:degree:pos\"><span title=\"mate/p:ADJD\">auffällig</span></span></span> <span title=\"mate/l:sein\"><span title=\"mate/m:mood:ind\"><span title=\"mate/m:number:pl\"><span title=\"mate/m:person:3\"><span title=\"mate/m:tense:pres\"><span title=\"mate/p:VAFIN\">sind</span></span></span></span></span></span> <span title=\"mate/l:schließlich\"><span title=\"mate/p:ADV\">schließlich</span></span> <span title=\"mate/l:noch\"><span title=\"mate/p:ADV\">noch</span></span> <span title=\"mate/l:der\"><span title=\"mate/m:case:nom\"><span title=\"mate/m:gender:masc\"><span title=\"mate/m:number:sg\"><span title=\"mate/p:ART\">der</span></span></span></span></span> <span title=\"mate/l:pohutukawa\"><span title=\"mate/m:case:nom\"><span title=\"mate/m:gender:masc\"><span title=\"mate/m:number:sg\"><span title=\"mate/p:NE\">Pohutukawa</span></span></span></span></span> <span title=\"mate/l:und\"><span title=\"mate/p:KON\">und</span></span> <span title=\"mate/l:der\"><span title=\"mate/m:case:nom\"><span title=\"mate/m:gender:masc\"><span title=\"mate/m:number:sg\"><span title=\"mate/p:ART\">der</span></span></span></span></span> <span title=\"mate/l:cabbage\"><span title=\"mate/m:case:nom\"><span title=\"mate/m:gender:masc\"><span title=\"mate/m:number:sg\"><span title=\"mate/p:NE\">Cabbage</span></span></span></span></span> <span title=\"mate/l:tree\"><span title=\"mate/m:gender:masc\"><span title=\"mate/m:number:sg\"><span title=\"mate/p:NE\"><span title=\"mate/m:case:nom\">Tree</span></span></span></span></span></span><span class=\"context-right\"></span>","ID":"match-WPD!WPD_NNN.02848-p1213-1224","pubDate":"2005-03-28","context":{"left":["token",0],"right":["token",0]}}