McObject announced that the newest release of the Perst
open source, object-oriented pure Java embedded database system supports integration with the widely used open source, all-Java Apache Lucene
information retrieval library, to provide efficient text indexing and searching within Perst databases.
In McObject's new Perst for Java version 2.71, Perst functions encapsulate the Lucene indexing and searching APIs. Developers can designate fields within Perst object classes as full-text searchable, so that Lucene automatically adds these fields' contents to its index, and provides the ability to search this indexed material using information retrieval library features such as support for single- and multi-term keywords, wildcards, proximity queries, phrase queries and relevance ranking.
While existing functions in Perst and other databases support a degree of text searching, Lucene provides a much wider range of capabilities, available "out of the box" and proven in thousands of deployments.
Perst also offers protection for the Lucene index against power or system failure. Applications can store the index within Perst, and in the event of failure, the consistency of the objects and the full-text index is guaranteed, because updating the full-text index is accomplished within the scope of Perst's ACID transactions.
If the transaction begins but then fails or is aborted, the Lucene index that catalogs Perst objects remains unchanged. (The Lucene index can also be stored outside the database, as a simple operating system file, which may lend higher performance but offers less protection of index contents.)
The new Perst for Java adds other new features that enhance performance and ease-of-use. One enhancement, multi-version concurrency control (MVCC), ensures users don't have to wait to access the database. It accomplishes this by giving each user a "snapshot" or copy of the database to work with and prioritizing users' changes to the database via timestamps placed on each of the copies. The addition of fine-grain locking using MVCC enables multiple simultaneous users to work more efficiently with Perst.
The new version of Perst also simplifies management of database indexes. A new feature enables the database run-time to take care of updating indexes when objects/rows of a table are inserted, edited or deleted. In previous versions, index maintenance was left for the programmer to establish.
More information about Perst is available at see http://www.mcobject.com/perst
. Perst is freely downloadable with registration.
For more information on Apache Lucene, see see http://lucene.apache.org/