lenya-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Andreas Hartmann <andr...@apache.org>
Subject API for document search
Date Wed, 02 Apr 2008 09:06:00 GMT
Hi Lenya users,

I'd like to hear about your opinions regarding the search capabilities 
Lenya should provide.

I have the requirement that it should be possible to issue a search for 
documents from every Java service. For this purpose, I'd like to 
introduce a service interface, e.g. DocumentSearcher, with a method that 
returns a list of hits. But I'm not sure about the method signature yet. 
IMO it has to be something like

   Hits find(Index index, Query query)

Should we abstract away Lucene, or should we just use the Lucene classes 
Hits and Query? If we introduce our own hits interface, e.g. 
DocumentHits, it would be easier to obtain the document from a hit:

   o.a.l.cms.publication.Document doc = hit.getDocument();

Otherwise, a helper would be needed:

   o.a.l.cms.publication.Document doc = searcher.getDocument(hit);

IMO the first version is preferrable.

The same question applies to the Query. That mainly depends on how we 
want to build queries. If we use the Lucene Query interface, we could

a) use subclasses, e.g. MetaDataQuery (IMO preferrable)
b) use helpers, e.g. SearchUtil.buildMetaDataQuery(…)

If we introduce our own Query syntax, things might become more 
complicated. Another option would be to use just query strings, but this 
requires us to define a syntax. Or we could just use the Lucene query 
parser syntax. The signature would then be

   Hits find(Index index, String queryString)

BTW, JCR uses the following API:

   QueryManager queryManager = workspace.getQueryManager();

   Query xPathQuery = queryManager.createQuery("//*", Query.XPATH);
   Query sqlQuery = queryManager.createQuery("select * …", Query.SQL);

   QueryResult result = xPathQuery.execute();


-- Andreas

Andreas Hartmann, CTO
BeCompany GmbH
Tel.: +41 (0) 43 818 57 01

To unsubscribe, e-mail: user-unsubscribe@lenya.apache.org
For additional commands, e-mail: user-help@lenya.apache.org

View raw message