/** ?? _solrToExcel_QuerySolrServer() * This function will look at $_GET (and $_POST data (via $_REQUEST)) and build the nessesary * Solr-query to hit the Solr-search-server with, and return Solr's responce. */ function _solrToExcel_QuerySolrServer() { $solr = apachesolr_get_solr(); $solrsort = ''; $params = unserialize($_POST['params_serialized']); $selectedOption = $_POST['dc']; if ($selectedOption == 'range') { $pageFrom = intval($_POST['rangefrom']); $pageTo = intval($_POST['rangeto']); $params["start"] = 10 * ($pageFrom - 1); $params["rows"] = 10 * ($pageTo - $pageFrom + 1); } else { if (strpos($selectedOption, '_')) { $pageNumber = intval(str_replace('current_', '', $selectedOption)); $params["start"] = $pageNumber >= 1 ? $pageNumber * 10 : 0; $params["rows"] = 10; } else { $params["start"] = 0; $params["rows"] = intval($selectedOption); } } $query1 = apachesolr_drupal_query('apachesolr', $params); apachesolr_search_add_boost_params($query1); $response = $query1->search(); return $response; }
$params['hl.fl'] = 'content'; $params['hl.snippets'] = 3; $params['hl.mergeContigious'] = array(TRUE); $params['f.content.hl.alternateField'] = array('teaser'); $params['f.content.hl.maxAlternateFieldLength'] = array(256); $params['qf'] = array('content^40', 'label^5.0', 'tags_h1^5.0', 'tags_h2_h3^3.0', 'tags_h4_h5_h6^2.0', 'tags_inline^1.0', 'taxonomy_names^2.0', 'tos_name^3.0'); $params['facet'] = TRUE; $params['facet.sort'] = array('count'); $params['facet.mincount'] = 1; $params['facet.field'] = array('{!ex=bundle}bundle'); $params['f.bundle.facet.limit'] = array(50); $params['f.bundle.facet.mincount'] = array(1); $params["start"] = 0; $params["rows"] = 10; $query = apachesolr_drupal_query('apachesolr', $params); apachesolr_search_add_boost_params($query); $response = $query->search(); $results = $response->response->docs; if (!empty($_REQUEST['format']) && strcasecmp('csv', $_REQUEST['format']) !== FALSE) { ob_clean(); $out = fopen('php://output', 'w'); header('Content-Type: text/csv'); header('Content-Disposition: inline'); // Print the results $header_done = FALSE; foreach ($results as $result_object) { $result = (array) $result_object; if (!$header_done) { $header = array_keys($result); fputcsv($out, $header); $header_done = TRUE;