Task #3635: Phase two Morpho implementation
Need a new local search mechanism
Currently, morpho puts all eml documents into a collection of DOM tree, then uses XPathAPI.selectNodeList method and xpath to search the DOM in the local search. If a user has a big set of local eml documents. It will cause the memory issue.
We might use Lucene search engine to replace the current approach.
Dataone uses SOLR for search. However, SOLR is a webapps. It involves tomcat, jetty and et al web servers. It is not good for morpho as a desktop application. But Lucene, the search engine used by SOLR, can be embedded into java application. So we can use Lucene.
Lucene has two main components - indexing and search.
The indexing part we might borrow some code from Dataone (mercury). I talked with Skye. We can't use it directly and have to do some modification.
The search part in Lucene is simple. It has a QueryParser class to help user to build a query from a string. Then user can can call IndexSearcher.search(query) to get result.