Hatherly.com

Blog



Open source desktop search – and indexing Freemind maps

Posted on December 11, 2009 by Adam under Java

I am always keen to investigate open source solutions to everyday problems I face, and my preference is for apps that run in a JRE. This is for two primary reasons:

  • They don’t generally require “installing” by which I mean I can use them on a windows machine without requiring admin rights or permission to update the registry
  • They are portable, so once I have figured out how to best use them to support my day-to-day tasks, I can easily transfer that solution to my Linux PC or Windows laptop

I have been using Freemind for organising all my notes as mindmaps for some time, and I am very pleased with it.

Another area I have been looking into recently is desktop search. The basic offerings in Linux are generally very good, but the Microsoft search solutions are very poor in comparison. I have used Google desktop before – which is very good, but it doesn’t meet the criteria above. To that end I did a bit of searching, and came across a nice pure java desktop search application called DynaQ. It uses various other best-of-breed java libraries to do the extraction and indexing, so is a very powerful search tool. It makes use of Catweasel and Aperture to trawl files and extract content, then uses Apache Lucene for indexing.

One problem I did come across however was that DynaQ did not seem to index my Freemind mind maps. After a bit of digging I discovered that this was because when Freemind saves it’s maps it does not include the standard XML header at the start of the file to identify it as an XML file. As a consequence, when Aperture looks at the file it cannot identify what type of file it is, and does not index it.

There are a few simple steps to remedy the problem:

  • Go to the DynaQ config directory and extract the contents of the apertureMimeConfiguration.xml.jar file
  • Edit the apertureMimeConfiguration.xml file, and amend the content of the XML section so it looks like this:
  • <description>
      <mimeType>text/xml</mimeType>
      <extensions>xml,xsl,xslt,wml,mm</extensions>
      <magicString>&lt;?xml</magicString>
      <magicString>&lt;map</magicString>
    </description>
    
  • Re-add the file to the jar and put it back in the config directory
  • Re-index the directory containing your Freemind files. NOTE: If the directory had been indexed previously you will probably need to update the timestamps on the files to force the indexer to re-index them

You should now be able to search on the contents of your mind maps.



  |  Leave a comment


No comments




Leave a Comment