<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Solarium - PHP Solr client</title>
	<atom:link href="http://www.solarium-project.org/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.solarium-project.org</link>
	<description>opensource Solr client library for PHP applications</description>
	<lastBuildDate>Sat, 08 Jun 2013 11:02:48 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
		<item>
		<title>Solarium 3.1.0 released</title>
		<link>http://www.solarium-project.org/2013/03/solarium-3-1-0-released/</link>
		<comments>http://www.solarium-project.org/2013/03/solarium-3-1-0-released/#comments</comments>
		<pubDate>Tue, 12 Mar 2013 14:58:40 +0000</pubDate>
		<dc:creator>Bas de Nooijer</dc:creator>
				<category><![CDATA[News]]></category>
		<category><![CDATA[Releases]]></category>

		<guid isPermaLink="false">http://www.solarium-project.org/?p=1205</guid>
		<description><![CDATA[Solarium 3.1.0 has just been released. Most changes and new features are related to Solr 4 features, for a full list of changes see this post. All the features have been documented in the manual. The API docs have also been updated. Version 3.1 is backwards compatible with 3.0, so if you should be able [...]]]></description>
				<content:encoded><![CDATA[<p>Solarium 3.1.0 has just been released. Most changes and new features are related to Solr 4 features, for a full list of changes see<a title="First release candidate for Solarium 3.1" href="http://www.solarium-project.org/2013/02/first-release-candidate-for-solarium-3-1/"> this post</a>.</p>
<p>All the features have been documented in the manual. The API docs have also been updated.<br />
Version 3.1 is backwards compatible with 3.0, so if you should be able to upgrade without changing any of your code. If you are using a 2.x version of Solarium you can use the <a href="http://wiki.solarium-project.org/index.php/V3:Upgrading_from_Solarium_2.x">upgrade guide</a>.</p>
<p>The roadmap for the next version of Solarium is not yet determined, so if you have a feature request please let me know!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.solarium-project.org/2013/03/solarium-3-1-0-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>First release candidate for Solarium 3.1</title>
		<link>http://www.solarium-project.org/2013/02/first-release-candidate-for-solarium-3-1/</link>
		<comments>http://www.solarium-project.org/2013/02/first-release-candidate-for-solarium-3-1/#comments</comments>
		<pubDate>Mon, 11 Feb 2013 15:34:44 +0000</pubDate>
		<dc:creator>Bas de Nooijer</dc:creator>
				<category><![CDATA[New features]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[Releases]]></category>

		<guid isPermaLink="false">http://www.solarium-project.org/?p=1168</guid>
		<description><![CDATA[The next version of Solarium has just been released in RC1 status. This is quite a big release with a lot of Solr 4 specific features, but also many other additions and bugfixes: The spellcheck component now supports collate params (Solr 4) Atomic updates (set/add/inc) are now supported (Solr 4) The escaping methods are now regex-aware (Solr 4) [...]]]></description>
				<content:encoded><![CDATA[<p>The next version of Solarium has just been released in RC1 status. This is quite a big release with a lot of Solr 4 specific features, but also many other additions and bugfixes:</p>
<ul>
<li>The spellcheck component now supports collate params (Solr 4)</li>
<li>Atomic updates (set/add/inc) are now supported (Solr 4)</li>
<li>The escaping methods are now regex-aware (Solr 4)</li>
<li>Document versioning is supported (Solr 4)</li>
<li>Collections have been added to the existing DistributedSearch component to support SolrCloud (Solr 4)</li>
<li>A new querytype has been added for realtime-get (Solr 4)</li>
<li>Support for pivot facet (Solr 4)</li>
<li>Support for highlighting boundaryscanner options (Solr 4)</li>
<li>Added qparserTerm helper method (Solr 4)</li>
<li>Added helpers for complex filterqueries using cost, cache disable or custom qparser / params</li>
<li>You can now set an endpoint as the default endpoint in the createEndpoint method with an extra param</li>
<li>Update document now supports DateTime objects as field values, they will automatically be converted to a Solr compatible date string</li>
<li>Fix for a bug in Edismax, it used the wrong requestbuilder resulting in missing params</li>
<li>The addDeleteQuery method in the update query now supports placeholders (similar to setQuery in the select query object)</li>
<li>Curl exceptions now return more detailed info about HTTP errors to make debugging easier</li>
<li>Authentication is now support for endpoints</li>
<li>A __toString method has been added to the endpoint object for debugging or logging purposes, similar to the one already available in the request object</li>
<li>Spellcheck suggestion results now provide access to all suggested words, instead of just the first one.</li>
<li>The BufferedAdd plugin now has an AddDocument event.</li>
</ul>
<p>All the features will be documented in detail in the manual wiki in the coming weeks. Some of the new features are implemented in the examples, and all code already has test coverage. If you have any questions or run into issues while testing the new release please let it know and help to improve Solarium even further!<br />
Version 3.1 is backwards compatible, so if you use 3.0 you should be able to upgrade without changing any of your code.</p>
<p>You can find Solarium 3.1.0-RC1 on GitHub: <a href="https://github.com/basdenooijer/solarium/tags">https://github.com/basdenooijer/solarium/tags</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.solarium-project.org/2013/02/first-release-candidate-for-solarium-3-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Solarium 3.0.0 released</title>
		<link>http://www.solarium-project.org/2012/12/solarium-3-0-0-released/</link>
		<comments>http://www.solarium-project.org/2012/12/solarium-3-0-0-released/#comments</comments>
		<pubDate>Wed, 19 Dec 2012 14:08:50 +0000</pubDate>
		<dc:creator>Bas de Nooijer</dc:creator>
				<category><![CDATA[News]]></category>
		<category><![CDATA[Releases]]></category>

		<guid isPermaLink="false">http://www.solarium-project.org/?p=1113</guid>
		<description><![CDATA[Finally Solarium 3.0.0 is out! This is the biggest changeset for Solarium since the start of the project, and includes the following: Support only PHP 5.3+ Fully namespaced File restructuring and class renaming Code style switched from Zend Framework 1 to Symfony 2 (but Solarium is still not tied to a framework!) The concept of [...]]]></description>
				<content:encoded><![CDATA[<p>Finally Solarium 3.0.0 is out! This is the biggest changeset for Solarium since the start of the project, and includes the following:</p>
<ul>
<li>Support only PHP 5.3+</li>
<li>Fully namespaced</li>
<li>File restructuring and class renaming</li>
<li>Code style switched from Zend Framework 1 to Symfony 2 (but Solarium is still not tied to a framework!)</li>
<li>The concept of &#8216;Endpoints&#8217; was introduced to support multiple Solr instances/cores in one client</li>
<li>Interfaces were added for all important concepts in the library</li>
<li>Internal classmaps for querytypes and components were simplified</li>
<li>The default adapter has been switched to Curl</li>
<li>OmitHeader support was added and enabled by default</li>
<li>Edismax is now a separate component (used to be combined with Dismax)</li>
<li>Http authentication support</li>
<li>Support for the Extract querytype, to index various documents</li>
<li>Support for PHPS Solr response data (in some cases much faster)</li>
<li>Custom hooks have been replaced by the very well documented and tested Symfony EventDispatcher component.</li>
<li>CreateFacet* methods can now directly add the created facet</li>
<li>The spellcheck component query now supports placeholders</li>
<li>Tagging and excluding of the main querystring is now supported</li>
<li>Added new grouping params: group.func, group.format, group.facet</li>
<li>Update query supports softCommit</li>
<li>The Curl adapter now has proxy support</li>
<li>Geospatial functions in query helper now support dereferenced params</li>
<li>Facet results can now be extracted from the response data (facets defined in the Solr config, not in your Solarium query</li>
</ul>
<div>For more detailed info see these earlier posts:</div>
<div>
<ul>
<li><a title="Development status update" href="http://www.solarium-project.org/2012/03/development-status-update/">Development status update</a></li>
<li><a title="Development status update – part 2" href="http://www.solarium-project.org/2012/03/development-status-update-part-2/">Development status update &#8211; part 2</a></li>
<li><a title="Solarium 3 status" href="http://www.solarium-project.org/2012/08/solarium-3-status/">Solarium 3 status</a></li>
</ul>
</div>
<p>All the features have been documented in <a href="http://wiki.solarium-project.org/index.php/Solarium_3.x_manual" target="_blank">the manual</a> and example code for new features or updated features is included in the release. An <a href="http://wiki.solarium-project.org/index.php/V3:Upgrading_from_Solarium_2.x" target="_blank">upgrade guide</a> is also available in the manual.</p>
<p>Starting from this version no pre-packaged versions of the library will be supplied on the site anymore. The recommended way to install Solarium is by using <a href="http://getcomposer.org" target="_blank">Composer</a> that also manages the Symfony EventDispatcher dependency. You can find <a href="http://packagist.org/packages/solarium/solarium" target="_blank">Solarium on Packagist</a> .</p>
<p>If you somehow still want or need to manually download the library, just get a package from <a href="https://github.com/basdenooijer/solarium/tags" target="_blank">Github</a>. But in that case you need to manually manage dependencies.</p>
<p>If you run into any issues during an upgrade from 2.x that are not described in the upgrade guide please let me know, so it can be added.</p>
<p>Last but not least, I want the thank the various people that contributed to Solarium 3, great work! And some nice pull requests are already waiting for Solarium 3.1!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.solarium-project.org/2012/12/solarium-3-0-0-released/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Solarium 3 first release candidate</title>
		<link>http://www.solarium-project.org/2012/10/solarium-3-first-release-candidate/</link>
		<comments>http://www.solarium-project.org/2012/10/solarium-3-first-release-candidate/#comments</comments>
		<pubDate>Thu, 04 Oct 2012 18:30:01 +0000</pubDate>
		<dc:creator>Bas de Nooijer</dc:creator>
				<category><![CDATA[News]]></category>
		<category><![CDATA[Releases]]></category>

		<guid isPermaLink="false">http://www.solarium-project.org/?p=994</guid>
		<description><![CDATA[It has taken some time, but finally Solarium 3 is feature complete! It&#8217;s been tested using unittests and some small apps, so the next step is the release of RC1. In previous posts a lot of changes were already mentioned, but here&#8217;s a quick list of changes: Support only PHP 5.3+ Fully namespaced File restructuring [...]]]></description>
				<content:encoded><![CDATA[<p>It has taken some time, but finally Solarium 3 is feature complete! It&#8217;s been tested using unittests and some small apps, so the next step is the release of RC1.</p>
<p>In previous posts a lot of changes were already mentioned, but here&#8217;s a quick list of changes:</p>
<ul>
<li>Support only PHP 5.3+</li>
<li>Fully namespaced</li>
<li>File restructuring and class renaming</li>
<li>Code style switched from Zend Framework 1 to Symfony 2 (but Solarium is still not tied to a framework!)</li>
<li>The concept of &#8216;Endpoints&#8217; was introduced to support multiple Solr instances/cores in one client</li>
<li>Interfaces were added for all important concepts in the library</li>
<li>Internal classmaps for querytypes and components were simplified</li>
<li>The default adapter has been switched to Curl</li>
<li>OmitHeader support was added and enabled by default</li>
<li>Edismax is now a separate component (used to be combined with Dismax)</li>
<li>Http authentication support</li>
<li>Support for the Extract querytype, to index various documents</li>
<li>Support for the much faster PHPS Solr response data</li>
<li>Custom hooks have been replaced by the very well documented and tested Symfony EventDispatcher component.</li>
<li>CreateFacet* methods can now directly add the created facet</li>
<li>The spellcheck component query now supports placeholders</li>
<li>Tagging and excluding of the main querystring is now supported</li>
<li>Added new grouping params: group.func, group.format, group.facet</li>
<li>Update query supports softCommit</li>
<li>The Curl adapter now has proxy support</li>
<li>Geospatial functions in query helper now support dereferenced params</li>
<li>Facet results can now be extracted from the response data (facets defined in the Solr config, not in your Solarium query</li>
</ul>
<div>For more detailed info see these earlier posts:</div>
<div>
<ul>
<li><a title="Development status update" href="http://www.solarium-project.org/2012/03/development-status-update/">Development status update</a></li>
<li><a title="Development status update – part 2" href="http://www.solarium-project.org/2012/03/development-status-update-part-2/">Development status update &#8211; part 2</a></li>
<li><a title="Solarium 3 status" href="http://www.solarium-project.org/2012/08/solarium-3-status/">Solarium 3 status</a></li>
</ul>
</div>
<p>All the features will be documented in detail in the manual wiki soon. Example code for the new features is already included in the release. If you have any questions or run into issues while testing the new release please let it know and help to improve Solarium even further!<br />
As this is a new major versions with lots of big changes it&#8217;s not backwards compatible. But upgrading shouldn&#8217;t require too much work either, many parts are still compatible. An upgrade guide will also be included in the docs asap.</p>
<p>Starting from this version no pre-packaged versions of the library will be supplied on the site anymore. The recommended way to install Solarium is by using <a href="http://getcomposer.org" target="_blank">Composer</a> that also manages the Symfony EventDispatcher dependency. You can find <a href="http://packagist.org/packages/solarium/solarium" target="_blank">Solarium on Packagist</a> . The &#8216;installation&#8217; using Composer is also something that will be described in the manual soon, but should be easy to figure out as Composer is well known by now. And if you still prefer the old way, just download a package from <a href="https://github.com/basdenooijer/solarium/tags" target="_blank">Github</a>. But in that case you need to manually manage dependencies.</p>
<p>Please provide feedback  if you use Solarium 3 (you can use a comment, Github message, the forum or Twitter).<br />
I&#8217;d really like to hear about issues, but also if everything works just fine!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.solarium-project.org/2012/10/solarium-3-first-release-candidate/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Solarium 3 status</title>
		<link>http://www.solarium-project.org/2012/08/solarium-3-status/</link>
		<comments>http://www.solarium-project.org/2012/08/solarium-3-status/#comments</comments>
		<pubDate>Fri, 10 Aug 2012 05:13:05 +0000</pubDate>
		<dc:creator>Bas de Nooijer</dc:creator>
				<category><![CDATA[News]]></category>

		<guid isPermaLink="false">http://www.solarium-project.org/?p=938</guid>
		<description><![CDATA[This is a follow-up of the first status update and second status update. The past few months development has been going a bit slower than I had hoped. But still, good progress has been made. Some highlights: The default adapter has been switched from &#8216;Http&#8217; (using streams) to &#8216;Curl&#8217;. Curl supports all features, for instance [...]]]></description>
				<content:encoded><![CDATA[<p><em>This is a follow-up of the <a title="Development status update" href="http://www.solarium-project.org/2012/03/development-status-update/">first status update</a> and <a title="Development status update – part 2" href="http://www.solarium-project.org/2012/03/development-status-update-part-2/">second status update</a>.</em></p>
<p>The past few months development has been going a bit slower than I had hoped. But still, good progress has been made. Some highlights:</p>
<ul>
<li>The default adapter has been switched from &#8216;Http&#8217; (using streams) to &#8216;Curl&#8217;. Curl supports all features, for instance parallel query execution. Also, the Http adapter makes use of streams which may cause issues of you execute a large number of requests, for instance a full index. Nowadays the Curl extension is available on most environments, if not it&#8217;s just one setting to switch back to the Http adapter.</li>
<li>Support for the &#8216;omitHeader&#8217; param was added and enabled by default. In most cases the header info isn&#8217;t used at all, so sending it down the wire and parsing it is useless. If you do use the headers you can always enable them.</li>
<li>Edismax is now a separate select query component. In Solarium 2.x Edismax was a setting of the Dismax component but this wasn&#8217;t very intuitive. On top of that Edismax and Dismax params are not fully compatible. Splitting into two components fixes both issues.</li>
<li>The client class has version info. In Solarium 2.x there was a separate (static) class for version info, this has been merged into the client for ease of use.</li>
<li>Coding standard has been switched from Zend Framework to Symfony 2. It fits better with the current code and <a href="http://cs.sensiolabs.org" target="_blank">PHP-CS</a> is saving a lot of work. While Solarium 3 uses the SF2 coding standard, it will of course still be framework agnostic.</li>
<li>Http authentication support <a href="https://github.com/basdenooijer/solarium/pull/89" target="_blank">was contributed</a> and has been merged into the Solarium 3 code</li>
<li>A new querytype has been added: &#8216;Extract&#8217;. You can use it for indexing documents in Solr, a much requested feature. For more info see <a href="https://github.com/basdenooijer/solarium/issues/77" target="_blank">this issue</a> on GitHub.</li>
<li>Support for the Solr &#8216;phps&#8217; responsewriter. This responsewriter returns data as serialized PHP, instead of JSON. Much more efficient for large responses, at the cost of a possible security risk in PHP deserialization. As long as you use a trusted Solr server this should be no issue, but to be safe the default is still JSON</li>
<li>The custom event hook system introduced in 2.x for plugin has been replaced by the Symfony EventDispatcher. All events are now defined in detail by event classes, priorities can be used and many more advantages. Any callback can be used as a &#8216;plugin&#8217;, so even a closure can be used. Makes events much more easy to use.</li>
</ul>
<div>These are just the most important changes, lots of smaller changes have also been done. And all changes to 2.x have been merged.</div>
<div>The good news is that by now all the important and backwards incompatible changes are done. All unittest have been updated to the new code and coverage has been restored to 100%. The &#8216;nextgen&#8217; feature branch that was used for development has been merged to the develop branch, as Solarium 3 will be the next release. There is no exact timeframe, but it shouldn&#8217;t be taking too long anymore to get to a release candidate.</div>
]]></content:encoded>
			<wfw:commentRss>http://www.solarium-project.org/2012/08/solarium-3-status/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Solarium 2.4.0 released</title>
		<link>http://www.solarium-project.org/2012/04/solarium-2-4-0-released/</link>
		<comments>http://www.solarium-project.org/2012/04/solarium-2-4-0-released/#comments</comments>
		<pubDate>Mon, 16 Apr 2012 11:58:56 +0000</pubDate>
		<dc:creator>Bas de Nooijer</dc:creator>
				<category><![CDATA[Releases]]></category>

		<guid isPermaLink="false">http://www.solarium-project.org/?p=848</guid>
		<description><![CDATA[Solarium 2.4.0 has been released and can be downloaded from the homepage, or the Github project page. This release includes the following features: New suggester querytype ParallelExecution plugin BufferedAdd plugin SequentialPrefetch plugin Support for parameter dereferencing (implemented in the join helper, see below) The query helper now has support for join Support for the new “hl.q” and “hl.phraseLimit” params [...]]]></description>
				<content:encoded><![CDATA[<p>Solarium 2.4.0 has been released and can be downloaded from the homepage, or the Github project page.</p>
<p>This release includes the following features:</p>
<ul>
<li>New <a title="Suggester query support" href="http://www.solarium-project.org/2012/01/suggester-query-support/">suggester querytype</a></li>
<li><a title="New Solarium plugin: ParallelExecution" href="http://www.solarium-project.org/2012/01/new-solarium-plugin-parallelexecution/">ParallelExecution plugin</a></li>
<li><a title="New Solarium plugin: BufferedAdd" href="http://www.solarium-project.org/2012/01/new-solarium-plugin-bufferedadd/">BufferedAdd plugin</a></li>
<li><a title="New Solarium plugin: PrefetchIterator" href="http://www.solarium-project.org/2012/01/new-solarium-plugin-prefetch-iterato/">SequentialPrefetch plugin</a></li>
<li>Support for <a href="http://wiki.apache.org/solr/LocalParams#line-32" target="_blank">parameter dereferencing</a> (implemented in the join helper, see below)</li>
<li>The query helper now has support for <a href="http://wiki.apache.org/solr/Join" target="_blank">join</a></li>
<li>Support for the new “hl.q” and “hl.phraseLimit” params was added to highlighting</li>
<li>The request class now has a __toString method for easy debugging</li>
<li>New formatDate method in the queryhelper</li>
</ul>
<div>The last two features where contributed by <a href="https://github.com/stefanooldeman" target="_blank">Stefano Oldeman</a>.<br />
There&#8217;s also a fix for the handling of &#8216;include&#8217; and &#8216;other&#8217; params with range facets by <a href="https://github.com/shieldo" target="_blank">Shieldo</a>.<br />
Solarium now uses Travis-CI and has support for generating phar files, configured by <a href="https://github.com/jaytaph" target="_blank">Jaytaph</a>.</div>
<p>Thanks guys!</p>
<p>All the features have been documented in the manual, and example code for the new features is included with the release. The API docs have also been updated.<br />
Version 2.4 is backwards compatible, so if you use any earlier 2.x release you should be able to upgrade without changing any of your code.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.solarium-project.org/2012/04/solarium-2-4-0-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Development status update &#8211; part 2</title>
		<link>http://www.solarium-project.org/2012/03/development-status-update-part-2/</link>
		<comments>http://www.solarium-project.org/2012/03/development-status-update-part-2/#comments</comments>
		<pubDate>Sun, 25 Mar 2012 07:35:13 +0000</pubDate>
		<dc:creator>Bas de Nooijer</dc:creator>
				<category><![CDATA[News]]></category>

		<guid isPermaLink="false">http://www.solarium-project.org/?p=826</guid>
		<description><![CDATA[This is a follow-up of the first status update with yet more info about the upcoming Solarium 3 version. Endpoints Currently in Solarium a client instance has a single adapter and this adapter holds the Solr connection settings. This effectively means you need a client instance for each Solr server / core you want to use, [...]]]></description>
				<content:encoded><![CDATA[<p>This is a follow-up of the <a title="Development status update" href="http://www.solarium-project.org/2012/03/development-status-update/">first status update</a> with yet more info about the upcoming Solarium 3 version.</p>
<p><strong>Endpoints</strong></p>
<p>Currently in Solarium a client instance has a single adapter and this adapter holds the Solr connection settings. This effectively means you need a client instance for each Solr server / core you want to use, or need to alter settings to switch servers. Both are not ideal. Multiple client instances introduces some overhead, especially when using plugins. You need to setup each client instance. Switching adapter settings between servers is possible but not very handy.</p>
<p>Using multiple Solr cores, or even multiple Solr servers is quite common so this needed to be improved. I came to the conclusion that a single client should be able to communicate with multiple servers/cores. The adapters should only handle how to communicate with the servers, and not handle server settings. So, I&#8217;ve introduced a new concept in Solarium 3: &#8216;endpoints&#8217;. An endpoint is basically a collection of settings that define a solr server / core: host, port, path, core and timeout.<br />
Each endpoint is defined with a key. For each query you execute you can (optionally) supply an endpoint  or endpoint key, and the query is executed using this endpoint, using the same client and adapter. The first endpoint you define is automatically used as the default endpoint. This makes use for a single endpoint easier, as you don&#8217;t need to pass it to execute queries. Of course you can always set your own default endpoint if needed.<br />
So in Solarium 3 you will only need a single Solarium client instance, no matter how many servers / cores you use.</p>
<p>It&#8217;s one of those changes where you immediately notice it&#8217;s the right thing to do. In Solarium 2 the implementations of the parallel execution and loadbalancer plugins had to use quite some tricks to work correctly. When switching these plugins over to the new endpoints it was very clear this was the missing concept that made the previous implementations hard.<br />
There are also little issues with backwards compatibility. The API and config have changed a small bit, but by making the first endpoint the default endpoint it otherwise works the same as it always did in previous versions.</p>
<p><strong>Interfaces</strong></p>
<p>Until now Solarium used &#8216;ducktyping&#8217;. As suggested by Igor and Joshua, using interfaces would be better. I&#8217;ve introduced the following interfaces:</p>
<ul>
<li>Solarium\Core\ConfigurableInterface</li>
<li>Solarium\Core\Client\Adapter\AdapterInterface</li>
<li>Solarium\Core\Query\QueryInterface</li>
<li>Solarium\Core\Query\RequestBuilderInterface</li>
<li>Solarium\Core\Query\ResponseParserInterface</li>
<li>Solarium\Core\PluginInterface</li>
</ul>
<p>In most cases there also is a base implementation of the interface that can be used to extend. But that&#8217;s entirely optional, as long as you implement the interface your object will be accepted. Also, in the various methods that use these objects checks have been added for the interface.<br />
Hopefully this helps plugin development.</p>
<p><strong>Simplified classmaps</strong></p>
<p>Solarium uses classmaps for querytypes and for components in the select query. These maps where quite complex, for each type multiple classes had to be registered in an array structure. For instance each querytype has a query class, requestbuilder class, responseparser class and result class. This has been simplified to a single class, the query class. This class then has methods to get any other classes needed, all required methods are defined in the interface. A similar solution is used for select query components.<br />
It makes the classmap simpler, and  allows for more flexibility in implementations.</p>
<p><strong>More to follow&#8230;</strong></p>
<p>The set of changes described in part 1 and this part is about the current state of development. More changes are still coming up, but they will take some time to develop. As soon as there is more news I&#8217;ll post another development update!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.solarium-project.org/2012/03/development-status-update-part-2/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Development status update</title>
		<link>http://www.solarium-project.org/2012/03/development-status-update/</link>
		<comments>http://www.solarium-project.org/2012/03/development-status-update/#comments</comments>
		<pubDate>Wed, 14 Mar 2012 06:51:06 +0000</pubDate>
		<dc:creator>Bas de Nooijer</dc:creator>
				<category><![CDATA[News]]></category>

		<guid isPermaLink="false">http://www.solarium-project.org/?p=810</guid>
		<description><![CDATA[While Solarium 2.x is still supported, and even developed, work has also started on the next major version of Solarium, version 3. In this version several big structural changes will be made to improve the library. But don&#8217;t be worried, while not fully backwards compatible it will be relatively easy to upgrade. There&#8217;s already several [...]]]></description>
				<content:encoded><![CDATA[<p>While Solarium 2.x is still supported, and even developed, work has also started on the next major version of Solarium, version 3. In this version several big structural changes will be made to improve the library. But don&#8217;t be worried, while not fully backwards compatible it will be relatively easy to upgrade.</p>
<p>There&#8217;s already several months of work in the new version and it will take another few months to finish. There is no exact timeframe yet. I&#8217;m planning on highlighting several of the bigger changes in blog posts so you can get an idea of the direction Solarium is going. And you can take a look at the current code in GitHub, you can find it in the <a href="https://github.com/basdenooijer/solarium/tree/feature/nextgen/library/Solarium" target="_blank">feature/nextgen</a> branch.</p>
<p><span id="more-810"></span></p>
<p><strong>Namespaces</strong></p>
<p>First of all Solarium 3 makes use of namespaces. <a href="https://github.com/igorw" target="_blank">Igor Wiedler </a>did a lot of work for this. It&#8217;s is very useful as some of the Solarium class names where getting very long. This raises the Solarium requirements to at least PHP 5.3. That shouldn&#8217;t be an issue, it&#8217;s about time to say goodbye to 5.2 and older versions&#8230;</p>
<p><strong>Restructuring of files</strong></p>
<p>Currently Solarium has quite a lot of folders. In some cases related files are spread over multiple locations. A good example are queries. Each query has one ore more classes in /query/[name], in /client/requestbuilder/[name], in /client/responseparser/[name] and in /result/[name].</p>
<p>In Solarium 3 each querytype has a single folder: /query/[name]. This folder has it&#8217;s own (sub)namespace and contains all files related to the querytype: the query class, the requestbuilder, the responseparser and the result class. Besides being a more logical way to group related files it also makes a lot more sense to do it this way when using namespaces. All files for a querytype are in the same namespace.</p>
<p>The plugins already had a special folder, but this contained both plugin implementations and a base class. This base class has been moved outside of the implementation folder and into the new &#8216;Core&#8217; folder.</p>
<p>There are some other smaller changes, for instance the document classes have been moved from their own folder into the select and update query folders. You can browse through the new structure to take a look for yourself.</p>
<p>The folder layout now looks like this:</p>
<ul>
<li>Core</li>
<li>Query</li>
<li>Plugin</li>
</ul>
<p>The &#8216;Core&#8217; folder holds all the Solarium base classes. For instance things like the client, adapters and the base query classes.<br />
The &#8216;Query&#8217; folder holds all querytype implementations<br />
The &#8216;Plugin&#8217; folder holds all plugin implementations.</p>
<p>If you&#8217;re using the Solarium API you probably won&#8217;t notice the restructuring. But for anyone browsing or even working on the library code this should make things a lot more clear.</p>
<p><strong>Code style</strong></p>
<p>Solarium used underscore prefixes for protected methods and variables. This was inspired by the Zend Framework coding style, but in Solarium 3 this is no longer used. There are already visibility keywords and this should be enough, especially when using an IDE. It&#8217;s a matter of personal preference, but I think it also reads nicer.<br />
The impact for must users is none, the public API has not changed.</p>
<p><strong>More soon&#8230;</strong></p>
<p>That&#8217;s it for now, the first three changes. But there&#8217;s a lot more that will be changed in v3. More development updates to follow soon!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.solarium-project.org/2012/03/development-status-update/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Second release candidate for Solarium 2.4.0</title>
		<link>http://www.solarium-project.org/2012/02/second-release-candidate-for-solarium-2-4-0/</link>
		<comments>http://www.solarium-project.org/2012/02/second-release-candidate-for-solarium-2-4-0/#comments</comments>
		<pubDate>Wed, 15 Feb 2012 16:18:30 +0000</pubDate>
		<dc:creator>Bas de Nooijer</dc:creator>
				<category><![CDATA[Releases]]></category>

		<guid isPermaLink="false">http://www.solarium-project.org/?p=775</guid>
		<description><![CDATA[Solarium version 2.4.0-RC2 is now available. For a list of new features in 2.4.0 see this earlier blogpost In this second release candidate several minor issues have been fixed, but most importantly the parallelExecution plugin has been improved. The implementation in RC1 had two big issues: a busy loop was causing cpu load and there [...]]]></description>
				<content:encoded><![CDATA[<p>Solarium version 2.4.0-RC2 is now available. For a list of new features in 2.4.0 see <a title="First release candidate for Solarium 2.4.0" href="http://www.solarium-project.org/2012/01/first-release-candidate-for-solarium-2-4-0/">this earlier blogpost</a></p>
<p>In this second release candidate several minor issues have been fixed, but most importantly the parallelExecution plugin has been improved. The implementation in RC1 had two big issues: a busy loop was causing cpu load and there was no support for requests to multiple cores/servers. A fix for both issues has been included in RC2 and can now be tested.<span id="more-775"></span></p>
<p>Meanwhile documentation for the new features in 2.4.0 has already been added to <a href="http://wiki.solarium-project.org/index.php/Solarium_2.x_manual" target="_blank">the manual</a>. The API docs have also been updated.</p>
<div>
<p>Version 2.4 is backwards compatible, so if you use a 2.x version you should be able to upgrade without changing any of your code.</p>
<p>Get Solarium 2.4.0-RC2 on GitHub: <a href="https://github.com/basdenooijer/solarium/tags">https://github.com/basdenooijer/solarium/tags</a></p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.solarium-project.org/2012/02/second-release-candidate-for-solarium-2-4-0/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>First release candidate for Solarium 2.4.0</title>
		<link>http://www.solarium-project.org/2012/01/first-release-candidate-for-solarium-2-4-0/</link>
		<comments>http://www.solarium-project.org/2012/01/first-release-candidate-for-solarium-2-4-0/#comments</comments>
		<pubDate>Fri, 27 Jan 2012 06:32:47 +0000</pubDate>
		<dc:creator>Bas de Nooijer</dc:creator>
				<category><![CDATA[Releases]]></category>

		<guid isPermaLink="false">http://www.solarium-project.org/?p=763</guid>
		<description><![CDATA[Solarium version 2.4.0-RC1 has just been tagged on GitHub. This release includes several new features and plugins. Some have already been mentioned in blog posts the last weeks, but here&#8217;s a full list of features: New suggester querytype ParallelExecution plugin BufferedAdd plugin SequentialPrefetch plugin Support for parameter dereferencing (implemented in the join helper, see below) The [...]]]></description>
				<content:encoded><![CDATA[<p>Solarium version 2.4.0-RC1 has just been tagged on GitHub. This release includes several new features and plugins. Some have already been mentioned in blog posts the last weeks, but here&#8217;s a full list of features:</p>
<ul>
<li>New <a title="Suggester query support" href="http://www.solarium-project.org/2012/01/suggester-query-support/">suggester querytype</a></li>
<li><a title="New Solarium plugin: ParallelExecution" href="http://www.solarium-project.org/2012/01/new-solarium-plugin-parallelexecution/">ParallelExecution plugin</a></li>
<li><a title="New Solarium plugin: BufferedAdd" href="http://www.solarium-project.org/2012/01/new-solarium-plugin-bufferedadd/">BufferedAdd plugin</a></li>
<li><a title="New Solarium plugin: PrefetchIterator" href="http://www.solarium-project.org/2012/01/new-solarium-plugin-prefetch-iterato/">SequentialPrefetch plugin</a></li>
<li>Support for <a href="http://wiki.apache.org/solr/LocalParams#line-32" target="_blank">parameter dereferencing</a> (implemented in the join helper, see below)</li>
<li>The query helper now has support for <a href="http://wiki.apache.org/solr/Join" target="_blank">join</a></li>
<li>Support for the new &#8220;hl.q&#8221; and &#8220;hl.phraseLimit&#8221; params was added to highlighting</li>
<li>The request class now has a __toString method for easy debugging</li>
<li>New formatDate method in the queryhelper</li>
</ul>
<div>The last two features where contributed by Stefano Oldeman (Enrise), thanks!</div>
<div>
<p>All the features will be documented in detail in the manual wiki in the next weeks. Example code for the new features is already included in the release. If you have any questions or run into issues while testing the new release please let it know and help to improve Solarium even further!<br />
Version 2.4 is backwards compatible, so if you use a 2.x version you should be able to upgrade without changing any of your code.</p>
<p>Get Solarium 2.4.0-RC1 on GitHub: <a href="https://github.com/basdenooijer/solarium/tags">https://github.com/basdenooijer/solarium/tags</a></p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.solarium-project.org/2012/01/first-release-candidate-for-solarium-2-4-0/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
