-
Notifications
You must be signed in to change notification settings - Fork 0
Home
- Introduction
- Features
- Requirements
- Architecture
sfSolrPlugin is a symfony plugin that allows to integrate an external Solr search platform into your symfony project. It allows a project to offer a search engine that can quickly lookup indexed textual data. Textual data present in the database, can easily be indexed through dedicated symfony tasks added by the plugin. Modifications to a model, due to users’ or backend interaction, can be immediately reflected in the textual indexes.
The plugin borrows many ideas from Carl Vondrik’s sfLucenePlugin. The substantal difference is that it relies on the Solr platform rather than on the Zend Search Lucene component, to index and query the data.
This makes things a little bit more complicated, as Solr must be hosted in a java servlet container, but I find that the gain in performance and scalability is indeed worth the cost of setting up the solution.
The code is in an alpha release, since it has not been tested nor developed against different symfony versions, but it is currently providing search functionalities to different online projects, some of them indexing millions of database records and serving thousands of users.
- parameters for connection to solr server in global configuration
- index management through symfony tasks (remove, update from propel model)
- index populated from ORM models
- index automatically synchronized on models’ changes
- sfSolr overridable module to show simple search controls and search results
- configurable model’s routing and partial for single result
- configurable transformation from propel model into solr document (intoDocument method)
- keywords highligthing
Symfony, Propel, Solr, Tomcat, Java. Versions and tidbits.
Solr is a platform developed on top of Lucene, so the index built with it are compatible with the index built by the sfLucene plugin, or any other software adopting the Lucene standards.
How the various components work together, from an architectural point of view. Tomcat, the ports.
Communications with the solr server is performed through the solr-php-client
This is a wrapper that encapsulate the details of the XML/HTTP dialog with the server in a comfortable object oriented client library.
The library is added in the lib/vendor
directory of the plugin.