Friday, April 16, 2010

ApachesolrExtension module

I have completed the module and am posting here. The module implements :
  • hook_install() and hook_uninstall() which register the variable apachesolr_service_class which is used by apachesolr_get_solr()
  • hook_menu() and hook_settings_form() for the update path configuration page
  • Drupal_Apache_Solr_Service_Extn.php file which contains the class that overrides _sendRawPost()
A few other findings that may help others :
1. fopen() is not allowed on certain sites if configured. You can use file_put_contents() in that case.
2. Make sure that the directory to which you are writing has write permissions for the Apache / web server user. This is required as Drupal writes the file during cron run.
3. Delete the index or change some content so that apachesolr_index_updated() is invoked. This function builds the index and a series of calls later invokes _sendRawPost()

Next, my solr infrastructure team will copy over the index from the file to the solr server. Will get back with how it goes !

2 comments:

Brad said...
This comment has been removed by the author.
Brad said...

Thanks for sharing these steps and I'll be looking forward to ur next post.Indeed these facts will be useful when implementing the module.Recently I came across a similarly interesting article on scaling lucene and solr (http://www.lucidimagination.com/Community/Hear-from-the-Experts/Articles/Scaling-Lucene-and-Solr)which was quite helpful.