Hello Max,

an implementation of IndexStore has a getBasicExpressionFactory(). Depending on how the index store is registered (as propertiesindexer or contentindexer) the index store the expression factory must be able to handle the <DAV:contains> expression for content or all the other for properties searching.

The LuceneExpressionFactory (in 2.2) translates dasl basicsearch queries to lucene expressions. But consider that the translation is done with respect to the structure of the lucene index that the LuceneContentIndexer/LucenePropertiesIndexer creates, i.e. how property names are mapped to lucene fields etc. So if you are using LuceneContentIndexer/LucenePropertiesIndexer or equivaliant to create the index you can use LuceneExpressionFactory, otherwise I think you have to write your own expression factory and return it from your index store implementation.

Regarding the ACL evaluation there is no progress. In 2.2 the result of a lucene based query (and other queries to) is scanned sequentially, and for each resource found, the permissions are checked.
The problem with Lucene filters will be, to calculate an independend data structure (to transform it to a bit set) that represents the permissions in your namespace.


If youo have any ideas on this field, I'm really interested to hear about.

Regards, Stefan

Max Pfingsthorn wrote:

Hello Devs,

I am very interested in the new meta-data search using lucene in 2.2. In our 
production environment, we have one slide instance serve 10+ namespaces, some 
counting more than 100.000 documents, all using the JDBCStore. Unfortunately, the 
DASL searches take a long time on these contexts (especially using 
<d:contains>), while a lucene search alone would be much faster. Since we use 
slide 2.1-final in our environment and 2.2 is not mature enough for us, I would like 
to use the new search implementation in our 2.1 installation.

We already have our custom IndexStore implementation, so my question is where 
to hook up the LuceneExpressionFactory. I am generally a bit lost on how 
exactly the IBasicExpressionFactory instance is obtained during the evaluation 
of the SearchMethod and IBasicQueryImpl. Is it enough if our IndexStore 
implementation returns a LuceneExpressionFactory instead of a 
TextContainsExpressionFactory? Any tips would be highly appreciated.

Another problem of us are the ACLs and their evaluation while searching. Is 
there any progress on this? I was thinking that a lucene implementation may use 
Filters 
(http://lucene.apache.org/java/docs/api/org/apache/lucene/search/Filter.html) 
representing the user's effective privilege set (mainly 'read', I guess) on all 
documents, which may be cached and therefore quite efficient. Any ideas?

Thanks in advance for your help!

Best regards,

Max Pfingsthorn

Hippo

Oosteinde 11
1017WT Amsterdam
The Netherlands
Tel  +31 (0)20 5224466
-------------------------------------------------------------
[EMAIL PROTECTED] / www.hippo.nl
--------------------------------------------------------------

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



--
Stefan L�tzkendorf  --  [EMAIL PROTECTED]

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Reply via email to