
This is my first official Trellon blog post! It's been a good first few weeks. I have had a chance to work on some exciting projects. One of which involved using the awesome ApacheSolr Drupal Module which adds support for much better search performance and faceted search.
Maybe it's just me, but I had the hardest time finding out how to search via the ApacheSolr module. I could see on the administration pages that the content was all indexed, and I had added the appropriate blocks, but every time I searched the site, it was just the normal results with no facets!
After reading some issues that alluded to this path search/apachesolr_search, it hit me that the ApacheSolr search is a different page (it appears as a separate Search tab on the search page). This is due to how the core Drupal search works and how it gets extended. I did waste a fair amount of time trying to realize this very fundamental task, so I started a ticket asking for more clarity in the documentation.
One issue that comes up from ApacheSolr being a separate search page is that the search form does not go to it by default. This is the $search_box in the page.tpl.php template. The way we change this behavior is to add a new submission handler to that form. You can create a custom module for this or put it in your custom theme.
<?php
/**
* Implementation of hook_form_alter()
*/
function custommodule_form_alter(&$form, $form_state, $form_id) {
// Add submission handler to redirect to apachesolr
if ($form_id == 'search_theme_form') {
// Add a submit, because the search form redirects to a specific place
$form['#submit'][] = 'custommodule_search_submit';
}
}
/**
* Implementation of form submit function
*/
function custommodule_search_submit($form, &$form_state) {
// Get form ID
$form_id = $form['form_id']['#value'];
// Create new redirect
$form_state['redirect'] = 'search/apachesolr_search/'. trim($form_state['values'][$form_id]);
}
?>If we break this down.
And voila! When you search through the Search Box, it will redirect you to the ApacheSolr search. It may be beneficial to point out that this will not change other searching locations, including the default search found at the search page.
This content can also be referenced at this issue: http://drupal.org/node/326375#comment-1643362
No Comments
Post new comment