Differences between revisions 9 and 10
Revision 9 as of 2006-05-07 20:26:49
Size: 4164
Editor: 193
Revision 10 as of 2006-05-07 20:27:28
Size: 4146
Editor: 193
Deletions are marked like this. Additions are marked like this.
Line 8: Line 8:
== Background ==

Summer of Code Proposal - Support for full text search in Cayenne

Subject ID

cayenne-search [http://wiki.apache.org/general/SummerOfCode2006#cayenne-search]


Support for full text search in Cayenne


Tomas Jucius


I am an undergraduate student in my final year of Bachelor Computer Science - Programming Technologies at Kaunas University of Technology (KTU), Lithuania. I am working as a programmer on java web-application development using tapestry, wicket(also jsf, jsp) frameworks and on desktop application development. At the moment I am developing content-collaboration-community system using tapestry and cayenne. I have been using [http://www.objectstyle.org/cayenne/ Cayenne] for about 2 years already. Also I know very well other ORM and data persistence frameworks: I have been using hibernate and torque persistence frameworks.

I am interested in this project because the company I am working for is using [http://www.objectstyle.org/cayenne/ Cayenne] in several projects. I am looking for every new cayenne release and new features. I think than full text search using lucene search engine would be great feature for Cayenne ORM.


[http://www.objectstyle.org/cayenne/ Cayenne] is a powerful, full-featured Java Object Relational Mapping framework. The proposal is to implement a full text search support using lucene search engine.

Nowadays, mostly all application, especially web sites, is considering google-like search function. Complex multi-criteria search screens are often perceived by users as being too complex, and are in fact rarely used. Users want to be able to just type the word and have the computer do the rest. For this sort of rich full-text search functionality Lucene is perfect choice. Lucene is powerful full-text search API written in Java. You can use Lucene to provide consistent full-text indexing across database objects and documents.


Support for full text search in cayenne using lucene search engine. Full text search support would make it easy to implement google style search in applications. Lucene will provide consistent full-text indexing across database objects. In-Memory object evaluation would become more sophisticated. Some of possible advantages suggested by lucene:

  • ranked searching -- best results returned first,
  • fielded searching (e.g., title, author, contents),
  • date-range searching,
  • multiple-index searching with merged results,
  • allows simultaneous update and searching.

Benefits for the Apache community

The Cayenne framework will support lucene full text search and other outgoing features. Framework will become more sophisticated.

Design / Approach

Integrating lucene search engine into cayenne framework. Some of possible basic advantages suggested by lucene: ranked searching, fielded searching, date-range searching, multiple-index searching with merged results

First step will be: to decide which concrete functionality we expect from lucene integration.

Second: designing that functionality

Third: Implementation

Fourth: .....




May 23

Project commencement

May 24

Consideration of features to implement, Design

June 4

Implementing basic search capabilities

June 20

First release

June 27

More sopthisticated features

July 4

Going for holiday

July 10

Coming back

July 15

Second release

August 2


August 12


August 20

Final release

August 21

Project submission

Me and this project

I have been using several ORM frameworks and during few years. I have found that Cayenne ORM is best suited for my projects. There a lot of factors: speed of development, documentation, good mailing list and etc. I am happy about Cayenne joining Apache. This step shows the quality of this product. Only high quality projects belong to Apache Software Foundation. I believe I'm very well suited for this project.

TomasJucius/Cayenne/proposal (last edited 2009-09-20 23:35:47 by localhost)