Tiny response format

Just uploaded to CPAN are Search::OpenSearch 0.21
and Search::OpenSearch::Server 0.20.

These releases add the Tiny JSON response format and the ability to limit your responses to a subset of the available fields.

Now all you minimalists can strip down your Dezi responses to bare bones JSON.

Example:

curl 'http://localhost:5000/search?q=foo&t=Tiny&x='

will return the only the built-in fields with near-zero metadata in the JSON string.

Dezi 0.2.2 released

Dezi 0.2.2 has been uploaded to CPAN.

This is a security release. Changelog below:


0.002002   13 Sept 2012
    * fix security issue with non-idempotent requests to /search URL app,
      bypassing authentication on the /index URL app.
      Dezi::Config now has a search_server instance and an index_server instance
      instead of a single server instance. Requires Search::OpenSearch::Server 0.19.

Dezi 0.2.0 released

Dezi 0.2.0 has been uploaded to CPAN.

The minor version bump from 0.1 to 0.2 reflects a major internal refactoring and a solidifying of the API.

The changelog:

0.002000 11 Sept 2012
* refactor all config into Dezi::Config
* add optional basic authentication for /index, /commit and /rollback actions
* add Architecture doc, flesh out Tutorial doc.

Also released to CPAN is Dezi::Client 0.2.0 with support for the authentication features of Dezi 0.2.0.

Dezi 0.1.8 released

Dezi 0.1.8 has been uploaded to CPAN.

New versions of the PHP, Perl and Python clients have also been released.

This new version of Dezi introduces a big performance optimization, in the form of transactions. Previous versions would open a new Indexer on every HTTP request, calling $indexer->finish() on every document addition. While that request represented a single transaction in itself, it also meant significant slowdowns when trying to push many consecutive documents to a Dezi server.

Now, if you pass the auto_commit => 0 flag in your Dezi engine_config, a new Indexer is spawned only on the first document, and is then cached and re-used until you POST a request to /commit. Here’s an example using the Perl dezi-client:

 % cat dezi-config.pl
 { engine_config => { auto_commit => 0 } }
 % dezi --dezi-config dezi-config.pl

 [ in a different terminal ]
 % dezi-client path/to/docs/*.xml
 % dezi-client --commit

The most efficient way to build an initial Dezi index of any significant size is to use the swish3 command-line tool on a local filesystem. But now you can use a Dezi client to add docs over HTTP at 3-4x the old rate. Plus, you can change your mind and rollback your changes:

 % dezi-client path/to/docs/*.xml
 % dezi-client --rollback

All this magic is part of the Search::OpenSearch::Engine::Lucy module, which implements the caching of the Indexer and adds 2 new methods in version 0.11: COMMIT() and ROLLBACK().

Happy indexing!

Dezi 0.1.7 released

New version of Dezi uploaded to CPAN just moments ago, along with new versions of:

* Search::OpenSearch (0.18)
* Search::OpenSearch::Engine::Lucy (0.10)
* Search::Tools (0.78)
* Search::Query::Dialect::Lucy (0.07)