index.php
Go to the documentation of this file.
00001 <?php 00002 00005 00019 ini_set("display_errors", 00020 "Off"); // Don't display errors to the users. Set it to "On" to see errors for debugging purposes. 00021 00022 ini_set("memory_limit", "64M"); 00023 00024 00025 // Database connectivity procedures 00026 include_once("../framework/db.php"); 00027 00028 // Content negotion class 00029 include_once("../framework/Conneg.php"); 00030 00031 // The Web Service parent class 00032 include_once("../framework/WebService.php"); 00033 00034 include_once("../framework/ProcessorXML.php"); 00035 00036 include_once("../framework/Solr.php"); 00037 00038 include_once("Search.php"); 00039 include_once("../auth/validator/AuthValidator.php"); 00040 include_once("../auth/lister/AuthLister.php"); 00041 00042 include_once("../framework/Logger.php"); 00043 00044 include_once("../framework/Namespaces.php"); 00045 00046 // Full text query supporting the Lucene operators 00047 $query = ""; 00048 00049 if(isset($_POST['query'])) 00050 { 00051 $query = $_POST['query']; 00052 } 00053 00054 // Types to filter 00055 $types = "all"; 00056 00057 if(isset($_POST['types'])) 00058 { 00059 $types = $_POST['types']; 00060 } 00061 00062 // Attributes to filter 00063 $attributes = "all"; 00064 00065 if(isset($_POST['attributes'])) 00066 { 00067 $attributes = $_POST['attributes']; 00068 } 00069 00070 // Filtering types 00071 $datasets = "all"; 00072 00073 if(isset($_POST['datasets'])) 00074 { 00075 $datasets = $_POST['datasets']; 00076 } 00077 00078 // Number of items to return 00079 $items = "10"; 00080 00081 if(isset($_POST['items'])) 00082 { 00083 $items = $_POST['items']; 00084 } 00085 00086 // Where to start the paging in the dataset 00087 $page = "0"; 00088 00089 if(isset($_POST['page'])) 00090 { 00091 $page = $_POST['page']; 00092 } 00093 00094 // Enable the inference engine 00095 $inference = "on"; 00096 00097 if(isset($_POST['inference'])) 00098 { 00099 $inference = $_POST['inference']; 00100 } 00101 00102 // Include aggregates 00103 $include_aggregates = "false"; 00104 00105 if(isset($_POST['include_aggregates'])) 00106 { 00107 $include_aggregates = $_POST['include_aggregates']; 00108 } 00109 00110 // Distance Filter 00111 $distanceFilter = ""; 00112 00113 if(isset($_POST['distance_filter'])) 00114 { 00115 $distanceFilter = $_POST['distance_filter']; 00116 } 00117 00118 // Range Filter 00119 $rangeFilter = ""; 00120 00121 if(isset($_POST['range_filter'])) 00122 { 00123 $rangeFilter = $_POST['range_filter']; 00124 } 00125 00126 // Optional IP 00127 $registered_ip = ""; 00128 00129 if(isset($_POST['registered_ip'])) 00130 { 00131 $registered_ip = $_POST['registered_ip']; 00132 } 00133 00134 $mtime = microtime(); 00135 $mtime = explode(' ', $mtime); 00136 $mtime = $mtime[1] + $mtime[0]; 00137 $starttime = $mtime; 00138 00139 $start_datetime = date("Y-m-d h:i:s"); 00140 00141 $requester_ip = "0.0.0.0"; 00142 00143 if(isset($_SERVER['REMOTE_ADDR'])) 00144 { 00145 $requester_ip = $_SERVER['REMOTE_ADDR']; 00146 } 00147 00148 $parameters = ""; 00149 00150 if(isset($_SERVER['REQUEST_URI'])) 00151 { 00152 $parameters = $_SERVER['REQUEST_URI']; 00153 00154 $pos = strpos($parameters, "?"); 00155 00156 if($pos !== FALSE) 00157 { 00158 $parameters = substr($parameters, $pos, strlen($parameters) - $pos); 00159 } 00160 } 00161 elseif(isset($_SERVER['PHP_SELF'])) 00162 { 00163 $parameters = $_SERVER['PHP_SELF']; 00164 } 00165 00166 $ws_s = 00167 new Search($query, $types, $attributes, $datasets, $items, $page, $inference, $include_aggregates, $registered_ip, 00168 $requester_ip, $distanceFilter, $rangeFilter); 00169 00170 $ws_s->ws_conneg($_SERVER['HTTP_ACCEPT'], $_SERVER['HTTP_ACCEPT_CHARSET'], $_SERVER['HTTP_ACCEPT_ENCODING'], 00171 $_SERVER['HTTP_ACCEPT_LANGUAGE']); 00172 00173 $ws_s->process(); 00174 00175 $ws_s->ws_respond($ws_s->ws_serialize()); 00176 00177 $mtime = microtime(); 00178 $mtime = explode(" ", $mtime); 00179 $mtime = $mtime[1] + $mtime[0]; 00180 $endtime = $mtime; 00181 $totaltime = ($endtime - $starttime); 00182 00183 $logger = new Logger("search", $requester_ip, 00184 "?query=" . $query . "&datasets=" . $datasets . "&types=" . $types . "&items=" . $items . "&page=" . $page 00185 . "&inference=" . $inference . "&include_aggregates=" . $include_aggregates . "®istered_ip=" . $registered_ip 00186 . "&requester_ip=$requester_ip&distance_filter=$distanceFilter&range_filter=$rangeFilter", 00187 $_SERVER['HTTP_ACCEPT'], $start_datetime, $totaltime, $ws_s->pipeline_getResponseHeaderStatus(), 00188 $_SERVER['HTTP_USER_AGENT']); 00189 00190 00192 00193 ?>
