Personal tools


Jan 17, 2014

Elasticsearch: un motore di ricerca open source, distribuito e RESTful

nuovi tool da explorare

Elasticsearch: un motore di ricerca open source, distribuito e RESTful

Filed Under:

A inizio anno si pianificano le attività per l'anno che sta per iniziare. Nel 2014, tra la lista dei framework da approfondire, c'è sicuramente Elasticsearch

La settimana scorsa, leggendo l'articolo New Year's Python Meme 2014 di Alessandro Pisa, mi sono soffermato a riflettere sulla quinta domanda proposta nel meme:

What are the top three things you want to learn next year?

read more

Mar 26, 2010

"Future is bright, future is Plone"

Sometimes when you are doing a lot of Plone development and integrations you could miss the big picture: Plone is not just a CMS. It's a damn good CMS with almost unlimited possibilities of integration. However its 'unlimity' has started to be one of its biggest limitations.

I'm working right now on a project that uses ore.contentmirror to serialize Plone content data to postgresql which can be later reused in repoze.bfg. I have found several similar deployments in the Plone community which were quite inspiring.

Plone integrationsThe scenario is almost always the same:

  • to use Plone as a CMS (backend)
  • to have fast framework (frontend) to serve my backend data
  • to include in frontend layer Web2.0 functionality and some other dynamic stuff
  • to make benefit of external indexing server for full text search, for both frontend and backend


You can of course use solr with collective.solr for search engine but thanks to tsearch2 some of the search/ranking functionalities can be taken directly from postgresql (making the whole stack much smaller and easier to maintain).

Serializing Plone data to SQL opens many possibilities. But with Plone you can do much more.

Plone integration world

You can integrate other CMS's like Alfresco or Sharepoint using CMIS. You can connect your Plone instance to Salesforce. Instead of using tsearch2 or solr as an indexing engine - you can use Google Search Appliance inside your Plone instance. If you want to start online document collaboration you can even connect it to Google Docs.

External services and applications are not the end of the story. There is of course WSGI with collective.xdv and Deliverance and bunch of other interesting middlewares and we shouldn't forget about PAS plugins.

It's possible that I missed something interesting. Plone community is very creative, thought. It's hard to be always up to date. That's why I'm sure that I miss a place where integrators and developers can share they successful stories and discuss potential use cases. A place which will make Plone future bright.


Sep 07, 2009

Solr explanations in collective.solr search results

Filed Under:

If you are using Solr score boost configuration, sometimes you need to know how certain document has been scored. Now you can see Solr explanation in Plone search results.

I'm still working on collective.solr branch. To help our customer to understand how certain documents has been scored, I've included in Plone search results an configurable option - debug query.


Using it you can check directly in Plone, Solr score explanation (it's toggled by jQuery).


Hidden explanation

and unfold:

Full explanation

Sep 03, 2009

Solr score in collective.solr

Filed Under:

I've recently created a branch merging rt.solr with collective.solr. You can now boost search results' relevancy directly from Plone configuration

For one of our customer we have been developing Solr score configuration in Plone. After a short discussion with witsch we have decided to contribute our efforts and merge everything to collective.solr branch. This is just a simple configuration panel with additional score query builder. Every score-boost entry has 3 fields: index, value and score. In current implementation if you leave value empty - it will be populated with SearchableText index value - when building the query. This approach allows flexibility our customer needs.

Let's assume you want to sort results as follow:

  • Description has a query boost 10.0
  • portal_type=Document has a query boost 15.0
  • review_state=published has a query boost 20.0

In this way you can boost Description index (for which the value will be taken from SearchableText) and portal_type index (for which you can define the value manualy) at the same time.

to-do: we would like to add as an option Solr score explanation in search results (for users who want to know why certain document has certain score).

We have found also some problems with Lucene proximity algorithm which can give some problems (it should be configurable in Solr 1.4.0). 

Aug 26, 2009

How to use Solr score's in plone search

Filed Under:

For one of our customers we need to implement more sophisticated search, then the default plone one. Using collective.solr and rt.solr it's quite easy.

Thanks to Jarn's collective.solr package you can easily use Solr search engine in Plone. What we have been missing in current implementation is a way to make use of solr/lucene score (relevancy). That's why we are working on rt.solr package - Solr score configuration implementation. Here's what we have so far:
Solr configuration
You can set score for Field and ZCText indexes and value for Field index (ZCTextIndex is using the SearchableText value from query). 
Above example then is translated to proper Solr query:
Description:%(searchterm)s^10 Title:%(searchterm)s^20 portal_type:Folder^10 portal_type:Document^30 review_state:published^100
and added to collective.solr search query. 
The result than is:
Stay tuned for more information about release of rt.solr package ;-)