The Minnesota Search Sprint
by Robert Douglass
Continuing the great and growing tradition of bringing people together in small groups to attack focused problems, a search related code sprint has been planned. From May 9 to 11, in the headquarters of the University of Minnesota Libraries, a small but dedicated group of Drupal coders will be melding minds to bring forth the next generation of Drupal search.
## Why Search?
Drupal has a great search module. The search index it builds powers search on Drupal.org and thousands of other sites. It is a critical piece of the Drupal project and fundamental to countless sites built on Drupal. Being able to effectively search for issues and solutions is a cornerstone of keeping the Drupal.org community happy and productive, so investing in making search even better is akin to investing in Drupal's overall success.
Search is a complicated subject of study. The text processing that goes into building a search index, including the one that has shipped with Drupal for the past few versions, is complex and outside of the typical range of tasks that most Drupal developers deal with on a day-to-day basis. Performance is also an issue, and expectations for the relevancy and speed of search have become very high in the last decade.
The current search module as a framework for building custom searches has many subtle but important limitations. For example, the core searches, user and node, can't be turned off. Thus a true pluggable architecture hasn't been attained simply due to the fact that one can't replace what is already there.
<a href="/%3Ca%20href%3D"http://api.drupal.org/api/function/hook_search/6">hook">http://api.drupal.org/api/function/hook_search/6">hook\_search</a>, the workhorse of the search framework, is also in need of some extensions, especially in the area of discovering the capabilities of each search implementation.
<a href="/%3Ca%20href%3D"http://api.drupal.org/api/function/do_search/6">do">http://api.drupal.org/api/function/do_search/6">do\_search</a>, the function which is supposed to be the keystone of the search API, is so confusing that it is rarely used outside of the core search module. All of these problems are fixable, but they need coordination, investigation, and elbow grease.
## Who's involved?
The Minnesota search sprint was born during the BoF session on ApacheSolr search that took place at the Boston Drupalcon in March. Many of us who have been working on search have been doing so as solo efforts. Whether it is faceted search, ApacheSolr, or Sphinx integration, very little collaboration between projects has been happening. This means that some of the limitations of the core search framework have been addressed several times by different people in different ways. While this is evidence of duplicated effort and hints at the need for better efficiency, the good news is that it will make it easier to decide which approaches are successful and which can be learned from for Drupal 7.
The Minnesota Search Sprint is being hosted by the University of Minnesota Libraries. The individuals attending are being sponsored by their respective companies, including Acquia, McDean, Inc. / OpenBand, Workhabit, CivicActions, The University of Michigan, Laboratoire NT2, and BoldSource. The attendees will be: Earnest Berry, Robert Douglass, Chad Fennell, Doug Green, Michael Hess, Djun Kim, David Lesieur, and Blake Luchessi.
You can participate in improving Drupal's search too! Join the search group, review some patches, and follow the Search Sprint's progress and updates on groups.drupal.org.