diff --git a/docker/schemaBasic.xml b/docker/schemaBasic.xml index 3e4b70d..bdf9848 100644 --- a/docker/schemaBasic.xml +++ b/docker/schemaBasic.xml @@ -6,6 +6,7 @@ <field name="id" type="string" indexed="true" stored="true" required="true" multiValued="false" /> <field name="type" type="text" required="false" multiValued="false" indexed="true" stored="true" /> <field name="title" type="text" required="false" multiValued="false" indexed="true" stored="true" /> + <field name="author" type="text" required="false" multiValued="false" indexed="true" stored="true" /> <field name="genre" type="string" required="false" multiValued="true" indexed="true" stored="true" /> <field name="text" type="mtas" required="false" multiValued="false" indexed="true" stored="true" /> diff --git a/docker/schemaFull.xml b/docker/schemaFull.xml index c368ae0..e7a4689 100644 --- a/docker/schemaFull.xml +++ b/docker/schemaFull.xml @@ -6,6 +6,7 @@ <field name="id" type="string" indexed="true" stored="true" required="true" multiValued="false" /> <field name="type" type="text" required="true" multiValued="false" indexed="true" stored="true" /> <field name="title" type="text" required="false" multiValued="false" indexed="true" stored="true" /> + <field name="author" type="text" required="false" multiValued="false" indexed="true" stored="true" /> <field name="genre" type="string" required="false" multiValued="true" indexed="true" stored="true" /> <field name="text" type="mtas" required="false" multiValued="false" indexed="true" stored="true" /> <field name="error" type="string" indexed="true" stored="true" /> diff --git a/docker/site/css/style.css b/docker/site/css/style.css new file mode 100644 index 0000000..b2152e0 --- /dev/null +++ b/docker/site/css/style.css @@ -0,0 +1,36 @@ + + +div.post { + color: #000000; + background-color: #EEEEEE; + border-color: #000000; + border-width: 1px; + border-style: solid; + margin: 10px; +} + +div.error { + color: #FFFFFF; + background-color: #FF0000; + border-color: #000000; + border-width: 1px; + border-style: solid; + margin: 10px; +} + +div.output { + color: #000000; + background-color: #FFFFFF; + border-color: #000000; + border-width: 1px; + border-style: solid; + margin: 10px; +} + +input.button { + color: #000000; + background-color: #DDDDDD; + border-color: #000000; + border-width: 1px; + border-style: solid; +} \ No newline at end of file diff --git a/docker/site/example_demo1.html b/docker/site/example_demo1.html new file mode 100644 index 0000000..f540330 --- /dev/null +++ b/docker/site/example_demo1.html @@ -0,0 +1,57 @@ +<!DOCTYPE html> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> + <head> + <meta charset="UTF-8" /> + <meta name="viewport" content="width=device-width, initial-scale=1.0" /> + <title>Multi Tier Annotation Search</title> + <script type="text/javascript" src="./js/jquery-3.1.1.min.js"></script> + <script type="text/javascript" src="./js/solr.js"></script> + <link rel="stylesheet" type="text/css" href="css/style.css"> + </head> + <body> + + <script> + $(document).ready(function() { + $("#createIndex").click(function(){ + var oThis = this; + update("/solr/demo1/update?wt=json&commitWithin=1000", $("pre#createIndexPost").text(), $("div#createIndexOutput"), $("div#createIndexError"), $("#createIndex")); + }); + $("#deleteIndex").click(function(){ + var oThis = this; + update("/solr/demo1/update?wt=json&commitWithin=1000", $("pre#deleteIndexPost").text(), $("div#deleteIndexOutput"), $("div#deleteIndexError"), $("#deleteIndex")); + }); + }); + + </script> + + <h1>Multi Tier Annotation Search - example demo1</h1> + + <h3>Create index</h3> + Post to /solr/demo1/update + <div class="post"><pre id="createIndexPost">[{ "id": "1","author":"Nicolaas Beets","title":"Een onaangenaam mens in de Haarlemmerhout","text":"folia-samples/beets1.xml" }, +{ "id": "2","author":"Nicolaas Beets","title":"Een oude kennis","text":"folia-samples/beets2.xml" }, +{ "id": "3","author":"Nicolaas Beets","title":"Varen en Rijden","text":"folia-samples/beets3.xml" }]</pre></div> + <input class="button" type="button" id="createIndex" value="create index" /> + <div id="createIndexOutput" class="output"></div> + <div id="createIndexError" class="error"></div> + + <h3>Empty index</h3> + Post to /solr/demo1/update + <div class="post"><pre id="deleteIndexPost">{ + "delete": { + "query": "*:*" + } +}</pre></div> + <input class="button" type="button" id="deleteIndex" value="delete index" /> + <div id="deleteIndexOutput" class="output"></div> + <div id="deleteIndexError" class="error"></div> + + + <h3>Basic stats</h3> + + + <p> + Go to <a href="index.html">main page</a>. + </p> + </body> +</html> diff --git a/docker/site/example_demo2.html b/docker/site/example_demo2.html new file mode 100644 index 0000000..9504d54 --- /dev/null +++ b/docker/site/example_demo2.html @@ -0,0 +1,16 @@ +<!DOCTYPE html> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> + <head> + <meta charset="UTF-8" /> + <meta name="viewport" content="width=device-width, initial-scale=1.0" /> + <title>Multi Tier Annotation Search</title> + <script type="text/javascript" src="./js/jquery-3.1.1.min.js"></script> + </head> + <body> + <h1>Multi Tier Annotation Search - example demo2</h1> + + <p> + Go to <a href="index.html">main page</a>. + </p> + </body> +</html> diff --git a/docker/site/index.html b/docker/site/index.html new file mode 100644 index 0000000..6432c1f --- /dev/null +++ b/docker/site/index.html @@ -0,0 +1,34 @@ +<!DOCTYPE html> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> + <head> + <meta charset="UTF-8" /> + <meta name="viewport" content="width=device-width, initial-scale=1.0" /> + <title>Multi Tier Annotation Search</title> + <script type="text/javascript" src="./js/jquery-3.1.1.min.js"></script> + <script type="text/javascript" src="./js/solr.js"></script> + <link rel="stylesheet" type="text/css" href="css/style.css"> + </head> + <body> + <h1>Multi Tier Annotation Search</h1> + + <h3>Solr</h3> + <ul> + <li>Go directly to <a target="_blank" href="/solr/">Solr</a></li> + <li>Go directly to <a target="_blank" href="/solr/#/demo1">Solr - demo1</a></li> + <li>Go directly to <a target="_blank" href="/solr/#/demo2">Solr - demo2</a></li> + </ul> + + <h3>Available folia</h3> + <ul> + <li><a target="_blank" href="/demo/folia-samples/beets1.xml">/demo/folia-samples/beets1.xml</a> - Nicolaas Beets, <em>Een onaangenaam mens in de Haarlemmerhout</em></li> + <li><a target="_blank" href="/demo/folia-samples/beets2.xml">/demo/folia-samples/beets2.xml</a> - Nicolaas Beets, <em>Een oude kennis</em></li> + <li><a target="_blank" href="/demo/folia-samples/beets3.xml">/demo/folia-samples/beets3.xml</a> - Nicolaas Beets, <em>Varen en Rijden</em></li> + </ul> + + <h3>Examples</h3> + <ul> + <li><a href="example_demo1.html">Example demo1</a></li> + <li><a href="example_demo2.html">Example demo2</a></li> + </ul> + </body> +</html> diff --git a/docker/site/js/solr.js b/docker/site/js/solr.js new file mode 100644 index 0000000..8c997c2 --- /dev/null +++ b/docker/site/js/solr.js @@ -0,0 +1,40 @@ +$(document).ready(function() { + $("div.output").html("").hide(); + $("div.error").html("").hide(); +}); + +function update(url, json, output, error, button) { + output.html("").hide(); + error.html("<pre>waiting for response...</pre>").show(); + button.hide(); + $.ajax({ + 'type' : 'POST', + 'url' : url, + 'contentType': 'application/json', + 'data' : json, + 'success' : function(data) { + // create response + try { + var myObject = JSON.parse(data); + error.hide(); + output.html( + '<pre>' + + JSON.stringify(myObject, + undefined, 2).replace(/&/g, + '&').replace(/</g, + '<').replace(/>/g, + '>').replace(/"/g, + '"') + '</pre>').show(); + } catch (err) { + error.html('<pre>'+data+'</pre>').show(); + } + button.show(); + }, + 'error' : function(jqXHR, textStatus, errorThrown) { + error.html('<pre>'+ + jqXHR.status + ' : ' + jqXHR.statusText+ ' : ' +jqXHR.responseText+'</pre>').show(); + button.show(); + } + }); +} + diff --git a/src/docker/Dockerfile b/src/docker/Dockerfile index 9983df4..408221b 100644 --- a/src/docker/Dockerfile +++ b/src/docker/Dockerfile @@ -19,7 +19,7 @@ USER root WORKDIR "/root" -RUN mkdir lib && mkdir data && mkdir data/mtas +RUN mkdir lib && mkdir data && mkdir data/mtas && mkdir folia-samples && mkdir site && mkdir site/js ADD https://raw.githubusercontent.com/meertensinstituut/mtas/master/docker/solrconfig.xml /root/data/ ADD https://raw.githubusercontent.com/meertensinstituut/mtas/master/docker/mtas.xml /root/data/ @@ -27,11 +27,17 @@ ADD https://raw.githubusercontent.com/meertensinstituut/mtas/master/docker/mtas/ ADD https://raw.githubusercontent.com/meertensinstituut/mtas/master/docker/mtas/demo_tei.xml /root/data/mtas/ ADD https://raw.githubusercontent.com/meertensinstituut/mtas/master/docker/schemaBasic.xml /root/data/ ADD https://raw.githubusercontent.com/meertensinstituut/mtas/master/docker/schemaFull.xml /root/data/ +ADD https://raw.githubusercontent.com/meertensinstituut/mtas/master/docker/folia-samples/beets1.xml.gz /root/folia-samples/ +ADD https://raw.githubusercontent.com/meertensinstituut/mtas/master/docker/folia-samples/beets2.xml.gz /root/folia-samples/ +ADD https://raw.githubusercontent.com/meertensinstituut/mtas/master/docker/folia-samples/beets3.xml.gz /root/folia-samples/ +ADD https://raw.githubusercontent.com/meertensinstituut/mtas/master/docker/site/index.html /root/site/ +ADD https://raw.githubusercontent.com/meertensinstituut/mtas/master/docker/site/example_demo1.html /root/site/ +ADD https://raw.githubusercontent.com/meertensinstituut/mtas/master/docker/site/js/solr.js /root/site/ ADD http://archive.apache.org/dist/lucene/solr/${currentDevelopmentVersion}/solr-${currentDevelopmentVersion}.tgz /root/ ADD http://apache.cs.uu.nl/commons/math/binaries/commons-math3-3.6.1-bin.tar.gz /root/lib/ ADD https://github.com/meertensinstituut/mtas/releases/download/${currentDevelopmentRelease}/mtas-${currentDevelopmentVersion}.jar /root/lib/ -ADD http://code.jquery.com/jquery-3.1.1.min.js /root/lib/ +ADD http://code.jquery.com/jquery-3.1.1.min.js /root/site/js/ RUN tar xzf lib/commons-math3-3.6.1-bin.tar.gz -C lib commons-math3-3.6.1/commons-math3-3.6.1.jar --strip-components=1 && rm lib/commons-math3-3.6.1-bin.tar.gz @@ -63,6 +69,13 @@ RUN service apache2 stop \ && a2enmod proxy_html \ && sed -i '/<\/VirtualHost>/ i ProxyPass /solr http://localhost:8983/solr\nProxyPassReverse /solr http://localhost:8983/solr' /etc/apache2/sites-enabled/000-default.conf +RUN rm /var/www/html/index.html \ +&& mkdir /var/www/html/demo \ +&& cp -rp folia-samples /var/www/html/demo/ \ +&& gunzip -r /var/www/html/demo \ +&& cp -rp site/* /var/www/html/ \ +&& chmod -R 755 /var/www/html \ + RUN printf "service solr start\nservice apache2 start\n" > /start.sh && chmod 755 /start.sh RUN mkdir demo1 && mkdir demo1/lib && mkdir demo1/conf && echo "name=demo1" > demo1/core.properties \ @@ -79,5 +92,3 @@ CMD bash -C '/start.sh'; 'bash' - -