| 
							- <?php
 - 
 - function solr_search($search){
 - 
 -   // Assemble a query string to send to Solr. This uses the Solr hostname from config.env. Solr's query syntax can be found at many sites including https://lucene.apache.org/solr/guide/6_6/the-standard-query-parser.html
 -   $solrurl = 'http://' . $_ENV["SOLR_HOSTNAME"] . ':' . $_ENV["SOLR_PORT"] . '/solr/' . $_ENV["SOLR_CORE"] . '/select?q.op=OR&q=content%3A' . $search . '&wt=json';
 - 
 -   // Perform Curl request on the Solr API
 -   $ch = curl_init();
 -   curl_setopt($ch, CURLOPT_URL, $solrurl);
 -   curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
 -   curl_setopt($ch, CURLOPT_HEADER, FALSE);
 -   curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');
 -   $response = curl_exec($ch);
 -   curl_close($ch);
 - 
 -   // Turn the API response into useful Json
 -   $json = json_decode($response);
 - 
 -   // If no results are found, display a message
 -   if ($json->response->numFound == '0'){
 -     $output = 'No results found';
 -   }
 -   else{
 -     foreach ($json->response->docs as $result){
 -       $content = $result->content;
 -       $result_output = parse_result($content);
 -       $results[] = $result_output;
 -     }
 -   }
 -   return $results;
 - }
 - 
 - function solr_search_id($id){
 - 
 -   // URL encode the ID string
 -   $id = urlencode($id);
 - 
 -   // Assemble a query string to send to Solr. This uses the Solr hostname from config.env. Solr's query syntax can be found at many sites including https://lucene.apache.org/solr/guide/6_6/the-standard-query-parser.html
 -   $solrurl = 'http://' . $_ENV["SOLR_HOSTNAME"] . ':' . $_ENV["SOLR_PORT"] . '/solr/' . $_ENV["SOLR_CORE"] . '/select?q.op=OR&q=id%3A"' . $id . '"&wt=json';
 - 
 -   // Perform Curl request on the Solr API
 -   $ch = curl_init();
 -   curl_setopt($ch, CURLOPT_URL, $solrurl);
 -   curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
 -   curl_setopt($ch, CURLOPT_HEADER, FALSE);
 -   curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');
 -   $response = curl_exec($ch);
 -   curl_close($ch);
 - 
 -   // Turn the API response into useful Json
 -   $json = json_decode($response);
 - 
 -   // If no results are found, display a message
 -   if ($json->response->numFound == '0'){
 -     $output = 'No results found';
 -   }
 -   else{
 -     foreach ($json->response->docs as $result){
 -       $content = $result->content;
 -       $result_output = parse_result($content);
 -       $results[] = $result_output;
 -     }
 -   }
 -   return $results;
 - }
 - 
 - function parse_result($input){
 - 
 -   //Set document reference number (used for OPS API)
 -   preg_match('/=D\s(([^\s]*)\s([^\s]*)\s([^\s]*))/', $input, $doc_ref);
 -   $output['doc_ref'] = str_replace(' ','',$doc_ref[1]);
 - 
 -   // Search for the application ID in the content element and display it
 -   preg_match('/Application.*\n(.*)\n/', $input, $application_id);
 -   $output['application_id'] = $application_id[1];
 - 
 -   // Search for the EPO publication URL in the content element and display it
 -   preg_match('/Publication.*\n(.*)\n/', $input, $epo_publication);
 -   $output['epo_publication_url'] = $epo_publication[1];
 - 
 -   // Search for the IPC publication URL in the content element and display it
 -   preg_match('/IPC.*\n(.*)\n/', $input, $ipc_publication);
 -   $output['ipc_publication_url'] = $ipc_publication[1];
 - 
 -   // Search for the title in the content element and display it
 -   preg_match('/Title.*\n(.*)\n/', $input, $title);
 -   $output['title'] = $title[1];
 - 
 -   // Search for the abstract in the content element and display it
 -   if (preg_match('/Abstract.*\n(.*)\n/', $input, $abstract)){
 -     $output['abstract'] = $abstract[1];
 -   }
 -   else {
 -     preg_match('/\(.\) \\n\\n(.*)\\n/', $input, $abstract);
 -     $output['abstract'] = $abstract[1];
 -   }
 -   return $output;
 - }
 - 
 - function get_random_record(){
 - 
 -     // Generate a random number for sorting by random
 -     $random = rand();
 - 
 -     // Assemble a query string to send to Solr. This uses the Solr hostname from config.env. Solr's query syntax can be found at many sites including https://lucene.apache.org/solr/guide/6_6/the-standard-query-parser.html
 -     // This query retrieves only the bib identifier field for records which satisfy the search query
 -     $solrurl = 'http://' . $_ENV["SOLR_HOSTNAME"] . ':' . $_ENV["SOLR_PORT"] . '/solr/' . $_ENV["SOLR_CORE"] . '/select?q.op=OR&q=*%3A*&wt=json&sort=random_' . $random . '%20asc';
 - 
 -     // Perform Curl request on the Solr API
 -     $ch = curl_init();
 -     curl_setopt($ch, CURLOPT_URL, $solrurl);
 -     curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
 -     curl_setopt($ch, CURLOPT_HEADER, FALSE);
 -     curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');
 -     $response = curl_exec($ch);
 -     curl_close($ch);
 - 
 -     // Turn the API response into useful Json
 -     $json = json_decode($response);
 - 
 -     // Pick a random key out of the docs array
 -     $random = array_rand($json->response->docs);
 - 
 -     //Set ID variable
 -     $id = $json->response->docs[$random]->id;
 - 
 -     //Set content variable
 -     $content = $json->response->docs[$random]->content;
 - 
 -     //Construct associative array with ID and content
 -     $result_array = array($id=>$content);
 - 
 -     return $result_array;
 - }
 - 
 - function one_random_record (){
 - 
 -   $random = get_random_record();
 - 
 -   foreach ($random as $id => $content){
 -     $output = parse_result($content);
 -   }
 -   return $output;
 - }
 - 
 - function ten_random_titles (){
 - 
 -   for ($x=0; $x <= 9; $x++) {
 -     $random = get_random_record();
 - 
 -     foreach($random as $id => $content){
 -       // Search for the title in the content element and display it
 -       preg_match('/Title.*\n(.*)\n/', $content, $title);
 - 
 -       $output[$x] = array($id=>$title[1]);
 -     }
 -   }
 -   return $output;
 - }
 - 
 - function ten_random_abstracts (){
 - 
 -   for ($x=0; $x <= 9; $x++) {
 -     $random = get_random_record();
 - 
 -     foreach($random as $id => $content){
 -       // Search for the abstract in the content element and display it
 -       if (preg_match('/Abstract.*\n(.*)\n/', $content, $abstract)){
 -         $output[$x] = array($id=>$abstract[1]);
 -       }
 -       else {
 -         preg_match('/\(.\) \\n\\n(.*)\\n/', $content, $abstract);
 -         $output[$x] = array($id=>$abstract[1]);
 -       }
 -     }
 -   }
 -   return $output;
 - }
 - 
 - 
 - ?>
 
 
  |