SearchAPI Module
The following is my first revision of a proposal to create a search API module. I'd love to get some feedback.
Project Details
A Drupal search API would allow for separation between the search interface that end users interact and the back-end indexing and retrieval work that a search engine performs. The advantages to creating a search API are:
Sphinxsearch integration
Following Yelvington I'm crossposting this to the following groups: SOC2008, Knight Foundation, Newspapers on Drupal and Search
One thing that would be really cool, is a module integrating http://www.sphinxsearch.com/ and Drupal. Our experience is that core search doesn't play nice when you have alot of nodes (we have 150.000+). Indexing simply kills the server.
So instead we use Sphinx. It's REALLY fast, both when searching and when indexing. BUT everytime we alter our content-types we have to manually reconfigure the sphinx configuration. This is why I propose this as a module for the SOC08 - a module that integrates Sphinxsearch and Drupal
Read moreSearch service
I've developed an additional service to implement Drupal content searching. This service provides one method, search.searchData, which uses Drupal's hook_search (and is closely based on the Drupal API command search_data).
The service accepts up to three arguments:
- search_keys: the keywords for the search
- type (optional): the type of data to search (i.e. 'node', 'user')
- simple (optional): if set, the search returns only the main fields (link, type, title, user, date, snippet) and removes any additional data
Drupal Search Modules References
SQL Search (Trip Search), Faceted Search & Fuzzy Search
SQL Search (Trip Search)
SQL Search (a new iteration of Trip Search) is an alternative search module that offers advanced search operands (phrases in quotes, excluded terms); searching by taxonomy term, user and date; filtering within results; and an advanced search page.
http://drupal.org/project/trip_search
Faceted Search
Read moreFinduser - a new search module for .... finding users
http://drupal.org/project/finduser
Read moreThis is a custom search module for users. It provides a search page that can search for users by username, email, or a custom text field. The custom text field can come from any content type, thus this module plays nicely with any user-as-node strategy.
The module does one thing and does it well, and is independent of search module. It has enough customization options to allow you to bend it to your will, as well as a healthy number of themable functions.
On the administer settings page for the Find user module you have the chance to set many configuration options. If you have CCK enabled and have added any text fields to any content types, these fields will show up as options to be searched. This allows you to use a module like nodeprofile or usernode or bio to extend your user profile and make it searchable via the Find user module.
Inline search
I plan to make an inline search module for D6. Basically it would provide a UI for various pages such as permissions, modules, menu, and other core ( and well supported module pages ) to provide a very fast way to narrow down the page content to find what you want.
Read moreFuzzysearch Module Initial Release
The Fuzzysearch module is now available for testing and feedback. The results being returned during my tests have thus far been quite good and performance has been better than search.module (overall query times and page generation times were faster with fuzzysearch.module, testing based on results displayed by devel.module).
Please try it out if you have a chance and leave me some feedback/post issues on the project page.
http://drupal.org/project/fuzzysearch
You can try out the module and read more information about the release on my blog http://boldsource.com
-Blake
Fuzzy Search Scoring Hook (SoC Update)
I'm contemplating how to implement a scoring factor hook into my new fuzzy search engine module. I believe what may work out to be the best way of doing this is allowing modules to tap into this scoring hook at the time of indexing.
Each hook should return a value between 0 and 10 as a score to add to the node being indexed. Then in the administration screen an administrator would be able to set the importance of the score given by that hook. This would allow the administrator of a drupal site to manage the scoring from different contributed modules.
Read moreFuzzy Search Engine Updates
Fuzzy Search Module (search_fuzzy.module)
Read moreEnhanced Search Update
Part 1 of my project (implementing synonym matching in the search index) is nearly completed, I am waiting for the patches to be accepted into core for drupal 6. In addition to synonym matching I also submitted a patch to index usernames with the nodes as requested in the Search group on drupal.org. The patches can be reviewed here, all comments welcome.
http://drupal.org/node/155262 - Taxonomy synonym search indexing
http://drupal.org/node/155254 - Username search indexing
For part 2 of my project I am to implement a fuzzy search engine in drupal.
Read more


