function apachesolr_index_report in Apache Solr Search 6
Same name and namespace in other branches
- 8 apachesolr.admin.inc \apachesolr_index_report()
- 5.2 apachesolr.admin.inc \apachesolr_index_report()
- 6.3 apachesolr.admin.inc \apachesolr_index_report()
- 6.2 apachesolr.admin.inc \apachesolr_index_report()
- 7 apachesolr.admin.inc \apachesolr_index_report()
1 string reference to 'apachesolr_index_report'
- apachesolr_menu in ./apachesolr.module
- Implementation of hook_menu().
File
- ./apachesolr.admin.inc, line 181
- Administrative pages for the Apache Solr framework.
Code
function apachesolr_index_report() {
try {
$solr = apachesolr_get_solr();
if (apachesolr_index_updated()) {
$solr
->clearCache();
}
$data = $solr
->getLuke();
} catch (Exception $e) {
watchdog('Apache Solr', nl2br(check_plain($e
->getMessage())), NULL, WATCHDOG_ERROR);
drupal_set_message(nl2br(check_plain($e
->getMessage())), "warning");
$data->fields = array();
}
$output = '<p>' . t('Number of documents in index: @num !pending', array(
'@num' => $data->index->numDocs,
'!pending' => '',
)) . "</p>\n";
$limit = variable_get('apachesolr_luke_limit', 20000);
if (isset($data->index->numDocs) && $data->index->numDocs > $limit) {
$output .= '<p>' . t('You have more than @limit documents, so term frequencies are being omitted for performance reasons.', array(
'@limit' => $limit,
)) . "</p>\n";
$not_found = t('<em>Omitted</em>');
}
elseif (isset($data->index->numDocs)) {
$not_found = t('Not indexed');
try {
$solr = apachesolr_get_solr();
$data = $solr
->getLuke(2);
$output .= '<p>' . t('Number of terms in index: @num', array(
'@num' => $data->index->numTerms,
)) . "</p>\n";
} catch (Exception $e) {
watchdog('Apache Solr', nl2br(check_plain($e
->getMessage())), NULL, WATCHDOG_ERROR);
$data->fields = array();
}
}
$fields = (array) $data->fields;
if ($fields) {
$output .= '<p>' . t('Number of fields in index: @num', array(
'@num' => count($fields),
)) . "</p>\n";
$rows = array();
foreach ($fields as $name => $field) {
$rows[$name] = array(
$name,
$field->type,
isset($field->distinct) ? $field->distinct : $not_found,
);
}
ksort($rows);
$output .= theme('table', array(
t('Field name'),
t('Index type'),
t('Distinct terms'),
), $rows);
}
else {
$output .= '<p>' . t('No data on indexed fields.') . "</p>\n";
}
return $output;
}