Here are the three options that seem practical to us right now. (1) Do The annotation search in postgres using LIKE or the postgres native full text search. Take the resulting list of file ids and use it to build a filter for the lucene query, the way we currently do for folders.
(2) Add a second lucene index that contains only annotations. First retrieve a list of file ids satisfying the annotation query from this index and use it to create a filter for the main lucene query on the archive. Whenever annotation text is edited, if blank, delete annotation from index otherwise add or replace annotation in index. (3) Add a second lucene index that contains contentrefs. This index would contain the same fields as the arhicve index plus the following: database_id: list of systemuser_id and contentref_id. annotation: list of all annotation text for this system user and content ref. folders: list of all folder names for this systemuser and content ref Whenever an article is added to or removed from a folder, or its annotation text is edited, the following would occur: See if it has an entry in the lucene index for the database. if so, extract the lucene document from the index. if the updated list of folders that contain it is empty, delete this document from the lucene database index. otherwise, update the folder and annotation in the document object. delete this document from the index. add the updated document object to the index. if not, extract the lucene document for the article from the archive index add the database_id, folders, and annotation fields to this object add the document object to the lucene database index. Got a better idea on this? Thanks!! On Nov 26, 2007 5:33 PM, lucene user <[EMAIL PROTECTED]> wrote: > Folks > > I have some additional textual data that is user specific, basically > annotations about documents. I would like to be able to do > **combined** searches, looking for some words in the document and some > in my users' private annotations about that document. Any suggestions > about how I should handle this? The annotations are changeable by > users at any time so we have to be ready to delete them and add others > at any time when the user does edit an annotation. > > Do I need a second Lucene index? Can I do a query against two indexes > at the same time? If so, how? > > The annotations will be very small but highly volatile. The database > of documents will grow large but nothing will be deleted from it. > > Thanks! > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]