Welcome to Picolena!

Description

Picolena is a lightweight ferret-powered documents search engine written in Ruby on rails:

  1. Just let Ferret index any directory you want.
  2. Enter queries on your browser to get corresponding documents in a few milliseconds.

Examples

Advantages

Picolena has many advantages:

  • it can index .pdf, .doc, .docx, .odt, .xls, .ods, .ppt, .pptx, .odp, .rtf, .html and plain text files will full text search, and offers a very easy way to add new extractors to index other filetype.
  • it is free as in free beer and as in free speech
  • thanks to Ferret, it is very fast
  • it keeps your data private. By default, only the computer on which it is installed can get access to the search engine. Other IP addresses can then be added to a white list.
  • it does not phone home. This claim is somewhat easier to verify on your server, with just a few lines of codes added, than on a Don't be evil black-box server.
  • it can be used to index any ftp, smb, ssh, webdav or local directory.
  • its user interface is available in English, German, Spanish and French.

License

Picolena, Ferret and Ruby on Rails are all released under the MIT license.

Authors

Picolena has been created by Eric Duminil, following the idea of Ferret Finder utility by Stuart Rackham.

It would be totally useless without:

  • Ferret, by Dave Balmain
  • Ruby on Rails, by David Heinemeier Hansson
  • the open source community that supports those projects.

Source code

Picolena 's source code is available via git there : http://github.com/EricDuminil/picolena/tree/master

git clone git://github.com/EricDuminil/picolena.git

Installation process

Picolena has been tested on Ubuntu 7.04 and 7.10, for both Desktop and Server editions.

To install Picolena, you first need Ruby on rails and RubyGems

Getting picolena gem

Launch

gem install picolena

with admin privileges.

Installing picolena

Once the gem is installed, you can launch:

picolena

followed by a list of directories you would like to be indexed.

For example:

picolena ~/shared_documents /media/literature

This would create picolena file structure, index every file inside ~/shared_documents and /media/literature, and launch specs to be sure everything is in order.

Depending on the amount of indexed data, it can take anywhere between a few seconds and some hours. For example, 15000 documents (out of which 50% get their content extracted as to plain text) have been indexed in 30 minutes on an Ubuntu server VM running on an old Windows server.

If every spec passes, you can be sure every file has been indexed properly.

Launching Picolena

cd picolena
ruby script/server

Time to open your browser and enjoy!

Optional configuration

Allowing access to other computers

You can allow access to other computers by adding IP addresses to config/custom/white_list_ip.yml:

# Only localhost is allowed by default, any request coming from another IP will get rejected.
# You can either add an IP address to the list:
#       - 192.168.0.37
# or an IP address range:
#       - 192.168.0.
# that will match any IP address whose first octets are 192.168.0
# If you want to allow everybody, just write:
#       Allow:
#         - all
Allow:
  - 127.0.0.1
  - 0.0.0.0

Modifying alias path of indexed directories

Changing interface language

Updating index periodically