[Yanel-dev] [Fwd: Re: API for document search]

Michael Wechner michael.wechner at wyona.com
Wed May 14 08:25:52 CEST 2008


Hi

Maybe something we can learn from

http://lenya.zones.apache.org/drafts/searchapi/

Cheers

Michi

-------- Original Message --------
Subject: 	Re: API for document search
Date: 	Tue, 13 May 2008 17:28:51 +0200
From: 	Andreas Hartmann <andreas at apache.org>
Reply-To: 	user at lenya.apache.org
To: 	user at lenya.apache.org
References: 	<fsvi9o$g9c$1 at ger.gmane.org> <ft5f03$87m$1 at ger.gmane.org>



Andreas Hartmann schrieb:
> Andreas Hartmann schrieb:
>> Hi Lenya users,
>>
>> I'd like to hear about your opinions regarding the search capabilities 
>> Lenya should provide.
> 
> I have prepared a first draft for the search API:
> 
> http://lenya.zones.apache.org/drafts/searchapi/
> 
> Any questions and comments are very welcome. In my sandbox I also have a 
> Lucene-based implementation which I'm testing at the moment.

I opened a bug and attached a patch:

https://issues.apache.org/bugzilla/show_bug.cgi?id=44990

-- Andreas


> 
> -- Andreas
> 
> 
>>
>> 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();
>>
>>
>> WDYT?
>>
>> -- Andreas
>>
> 
> 


-- 
Andreas Hartmann, CTO
BeCompany GmbH
http://www.becompany.ch
Tel.: +41 (0) 43 818 57 01


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



-- 
Michael Wechner
Wyona      -   Open Source Content Management - Yanel, Yulup
http://www.wyona.com
michael.wechner at wyona.com, michi at apache.org
+41 44 272 91 61



More information about the Yanel-development mailing list