Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Recommendation engine for Alfresco?

I want to implement Amazon-like recommendations in Alfresco.

For instance, if an employee searches for "financial reports 2007", the search UI will show related documents, for instance documents that were downloaded/viewed by users who previously searched for the same thing.

It might show documents that would not have been found by Lucene (which Alfresco uses).
For instance, has anyone integrated Alfresco with Apache Mahout or pysuggest?

like image 898
Nicolas Raoul Avatar asked Feb 22 '23 06:02

Nicolas Raoul


2 Answers

The good thing is that alfresco by default supports references (associations). So you can define many usefull relations between documents. For example:

Document->User => viewed-by

Document->User => searched-by

Document->User => downloaded-by

Document->Document => Related-to

Document->Document => Same-year

...

You can catch/implement most of the events using alfresco policies/behaviours (http://wiki.alfresco.com/wiki/Policy_Component). For example: when onCreate event occurs (document is created) do a search for documents with same author and link this document (add associations) to them.

Then you can implement a custom search (webscript maybe) that will return results and for each result also return it's references (associations).

The only thing that worries me is that some events would probably be only accessible via audit log which I have no idea how to capture programatically using java.

In the end you can then feed this stuff to your engine that will learn on that.

like image 95
Matjaz Muhic Avatar answered Mar 16 '23 01:03

Matjaz Muhic


Interesting topic! Recently I read about Mahout in context of Lucene/Solr. There are some people deeply involved in Mahout at Lucidimaginations, see:

  • https://lucidworks.com/blog/2011/11/08/apache-mahout-scalable-machine-learning-for-everyone/
  • https://lucidworks.com/blog/2010/03/16/integrating-apache-mahout-with-apache-lucene-and-solr-part-i-of-3/

Since Lucene/Solr is part of Alfresco you could think about integrating it at search engine level. Additionally you could ask to canoo company (Basel, Switzerland). In the past they offered us an interesting solution for a multi-platform related-document engine they developed based on Solr.

like image 27
Dirk Avatar answered Mar 16 '23 01:03

Dirk