Hi Alex, After discussing it with Marcel offline I was thinking to add attribute support to IndexPlan. Attached the patch implementing following approach to OAK-2173
1. Expose a method Object getAttribute(String name) 2. Allow passing in a map to builder This would allow arbitrary payload attached to IndexPlan instance. If I go extension route then I would need to decorate an existing IndexPlan instance so quite a bit of redundant code. So would prefer an attribute based approach. Thoughts? Chetan Mehrotra On Fri, Oct 10, 2014 at 2:21 PM, Alex Parvulescu <alex.parvule...@gmail.com> wrote: > I would go with #1, add a custom IndexPlan impl. > Half of the properties that we currently set in the index plan builder are > not going to change anyway (like #setIncludesNodeData, #setFulltextIndex) > so it makes sense to hide that away for conciseness. > > alex > > > On Thu, Oct 9, 2014 at 1:17 PM, Chetan Mehrotra <chetan.mehro...@gmail.com> > wrote: > >> Just to add in that thread Marcel suggested to use the NodeState >> related to index definition [3]. This would work fine for property >> index which directly use that defintion. However currently we manage >> Lucene index (IndexSearcher) by path. Hence the need to access to >> index path details to obtain the right Lucene index >> >> Chetan Mehrotra >> [3] http://markmail.org/message/jjrkz7x7vwzunypa >> >> >> On Thu, Oct 9, 2014 at 4:40 PM, Chetan Mehrotra >> <chetan.mehro...@gmail.com> wrote: >> > Hi, >> > >> > While working on Lucene property index support I need to modify the >> > logic to support multiple Lucene Index definitions. The approach used >> > in patch attached to OAK-2005 creates multiple LuceneIndex instances >> > which are bound to various Lucene index definitions [1]. >> > >> > However as discussed in last Oakathon we also need to be prepared to >> > support index at non root node (OAK-1980). And for that it was >> > suggested to return multiple IndexPlans from within Index impl which >> > take into account index definition determined via path restriction. >> > >> > To do that later when actual query is to be performed I need to >> > corelated the IndexPlan with actual LuceneIndex. Current IndexTracker >> > tracks Lucene indexes via path. So I need to determine what index path >> > in repo given IndexPlan refers to. Similar thing was discussed >> > sometime back in [2]. >> > >> > So any thoughts on what approach to take >> > >> > 1. Use a custom IndexPlan impl and add required meta info like index >> > path in that >> > 2. Have some way of passing a payload in the IndexPlan itself which an >> > index impl can use to manage such info >> > >> > Chetan Mehrotra >> > [1] >> https://github.com/chetanmeh/jackrabbit-oak/compare/chetanmeh:trunk...OAK-2005?diff=split#diff-12 >> > [2] http://markmail.org/thread/jjrkz7x7vwzunypa >>