Last updated by silverwing on Thu, 2011-07-14 20:41
The project is finished, the final release can be downloaded here.
It contains, besides the old prototype, a complete Solr backend for Views, which can be used by applying the contained patch to the Views module. I also posted this to the Views issue queue in the hope that it might be directly committed to Views, but at the moment no one has yet responded.
Once the patch is applied, Solr views can be easily created by selecting the Apache Solr base table when adding a new view.
This will also be merged into the normal apachesolr D6 branch soon.
The Apache Solr Search Integration module is a very convenient tool to integrate the Apache Solr search facilities into a drupal project. Yet, one of its flaws is that it's way of presenting the search results rather static, missing the customisation facilties that, for example, the Views module provides. This project aims at improving the usability of the apachesolr module by porting it to the latest version of drupal, integrating a way to present its search results with the Views front-end and adding the possibility to index attachments.
The first goal of the project will be to port the apachesolr module (including the apachesolr_search module) to drupal 6 (if not already done). Also part of this step is evaluating what new possibilities drupal 6 provides that are relevant to the apachesolr module and to what extent new functionality can easily be added to the module through the use of drupal 6. Depending on this, new functionality may be added to the module.
Subsequently, the main goal will be to research ways to provide the Solr search with the Views front-end, choose the best one according to usability, performance, to what extent it would aid others in integrating another search engine and other criteria, and finally implement it. Up to now, possible methods include:
- Implementing the Solr search as a Views filter, which would certainly function, but probably not perform very well concerning the mentioned criteria.
- Using just the Views front-end and feeding it with data from the Solr searches. It remains to be evaluated to what extent this would introduce unnecessary dependencies and if it could be made abstract enough to aid others in integrating other search engines.
An additional goal will then be to implement a way of indexing attachments via the module, which is supported by Lucene. This has already been proposed in the apachesolr issue queue and is therefore an agreed-upon target for the future development of the module.
Also part of this project will be the creation of simpletest test cases for the apachesolr module, with emphasis on the new functionality.
- 06/08: Ported the apachesolr and apachesolr_search modules to drupal 6
- 07/06: Have decided on the Views integration method to implement
- 07/20: Finished work on Views integration
- 08/11: Completed implementing the attachment indexing mechanism
Continously: writing tests for written code.
Task summary: Locally installed the necessary environment. Committed an incomplete D6 port to a newly created D6 branch of the apachesolr module and tested what works and what doesn't.
Next week I'll start completing the D6 port of the module and looking into what opportunities D6 holds for it.
- Installed clean versions of Drupal 5 and 6.2
- Added the apachesolr module to the D5 version and an incomplete D6 port to the D6 version
- Added simpletest, views, cck and coder modules to the D6 version
Task summary: Nearly finished porting the module, with some help. Next week I'll write/update the tests for that and correct what's still buggy. And maybe I'll already start looking deeper into the Views integration problem.
- My bachelor thesis takes a bit longer than I thought, this might delay the initial schedule slightly.
- Committed a new version of the module's D6 port to the CVS
Task summary: Completely finished the D6 port (at least, there are no new bug reports) and wrote/updated a bunch of tests. Next week, I'll maybe add some small features and will definitely start to look into the Views integration issue.
- Because of several events (the mentioned thesis, exams, a festival), I won't have much time this week. But by next Wednesday, everything should be resolved and I should finally be able to completely concentrate on this project.
- Committed a new (hopefully bug free) version of the module's D6 port and several tests.
Task summary: As notified, I couldn't work very much on the project this week. Almost finished a patch that adds one more feature and briefly looked into the Views integration. Next week I plan to accomplish much more, i.e. finish that patch and maybe some others, maybe also add tests for those and certainly get my hands on the Views integration properly.
Task summary: Finished the feature patch and some minor style issues. Worked on the first Views integration prototype, which I'll continue working on next week.
- None. Waiting for feedback before committing the changes mentioned above.
Task summary: Added some other minor features, finished and published the first Views integration prototype. Researched other ways to do it for the second one, and for ways to improve the first. Next week I'll continue research and start coding on the second prototype. Also will try to improve the first. And I'll set up a public test installation with the first (and maybe the second, if done by then) prototype.
- Committed several changes to the D5 and D6 branches of apachesolr.
- Moved Views integration development to the project's HEAD.
Task summary: Created the required alpha release and a test installation for demo and testing purposes. Improved the first prototype and planned the second.
- Committed some small changes to the D5 and D6 branches of apachesolr.
- Created alpha release of D6 version of apachesolr.
- Created test site and alpha release.
Task summary: Made several small updates to the module and to the first prototype. E.g., the facet blocks now work with the view, too. Also discussed possible layouts for the second prototype and started implementing.
Next week I'll continue implementing the second prototype and keep working on the module and the first prototype, if the chance arises.
- Committed some small changes to the D5 and D6 branches and HEAD of apachesolr.
Task summary: Wrote new query class that could be used by views to display results from Solr instead from the database and on generalizing some module functionality to work with views on arbitrary paths. Also some unrelated work on other parts of the module.
Next week I'll try to patch Views in a way that allows one to use such a query class to select an individual back-end for a base table.
- Several commits to HEAD, including the new views query class and some generalizations to the module where things only worked for the static "search//" path.
Task summary: I started with the Views patch but am not quite finished yet. I already wrote the necessary base table definition so that Views knows about it, but up to now it isn't using my specified query class.
Next week I hope to finish this and post the patch.
- Some commits to HEAD.
Task summary: I worked on rewriting the Views backend to allow for the definition and usage of alternative query classes. I hoped to get this done by today, but, alas!, I haven't, so I'll continue working on this the next week. At the moment, it already uses the right class and there are no errors, but the results don't get displayed. Also on the positive side, all normal views work as before.
- The rewriting of the Views backend is a bit more complicated than I thought. At the moment it seems like I'm almost done and there is only one error left somewhere, but I don't know how quick I'll find it and if it's really the only one.
- Also I won't have internet for a few days from now on, hence the early report. But I hope to get some work done, still, on my laptop.
- Some commits to HEAD, including a first draft at the Views patch.
Task summary: With some help I finally finished the second prototype and posted the resulting Views patch to the Views issue queue for review. I also extended it a bit already, so the argument now works, too.
In this last week I plan to further extend it, work on the Views patch if necessary and also try to get the attachment indexing mechanism implemented by febbraro into the module.
- Committed a working version of the second prototype to HEAD.