Select Page

Java Synergy: Perst Integrates With Apache Lucene For Full-Text Search in Embedded Databases

July 10, 2007 — The Perst all-Java open source, object-oriented database also adds multi-version concurrency control (MVCC) for fine grain locking, and simplifies index maintenance.  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 highly 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.)

“Lucene enjoys the highest esteem in the open source and Java development communities for its power, flexibility and ease-of-use. Perst enjoys a strong and growing reputation for exceptional ‘transparent persistence,’ performance and ease in working with Java objects. Together, the technologies create an unbeatable open source, all-Java combination to add proven data management along with transaction-protected full-text indexing and search to a variety of applications,” Steve Graves, McObject CEO, said.

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 www.mcobject/perst/.
For more information on Apache Lucene, see


About McObject
Founded by embedded database and real-time systems experts, McObject offers proven data management technology that makes intelligent devices smarter, more reliable and more cost-effective to develop and maintain. McObject counts among its customers industry leaders such as DaimlerChrysler, EADS, JVC, Tyco Thermal Controls, F5 Networks, CA, Motorola and Boeing. McObject, based in Issaquah, WA, is committed to providing innovative technology and first-rate services to customers and partners. The company can be reached at +1-425-888-8505, or visit

McObject is a registered trademark of McObject LLC. All other company or product names mentioned herein are trademarks or registered trademarks of their respective owners.