Hi,

For Lucene based property index (OAK-2005) I need to make LuceneIndex
implement AdvanceQueryIndex. As AggregateIndex (AI) wrap LuceneIndex
(for FullText search) it would also need to be adapted to support the
same (OAK-2119). However making it do that seems bit tricky

A - Cost aggregation
-----------------------
AggregateIndex aggregates the cost also. How such thing should be
implemented in terms of IndexPlan is not clear. Also I am not sure if
cost needs to be re defined as wrapped index is not registered.
Probably AggregateIndex just returns the baseIndex cost

B - FulltextQueryIndex
------------------------------

As FulltextQueryIndex does not extend AdvanceQueryIndex it causes
issue in wrapping. Should I create a new AdvanceFulltextQueryIndex
like.

    public interface AdvanceFulltextQueryIndex extends
                  FulltextQueryIndex, AdvancedQueryIndex {

    }

Further I do not understand the AggregateIndex logic very well and not
sure how a Fulltext index which also handles property restriction can
be wrapped. Any guidance here would be helpful!


Given that initial implementation would not support both Fulltext
query and Property based query simultaneously we can take an
alternative approach for now (its fallback Plan B and only considered
last option)

1. Have two impls LuceneIndex and LucenePropertyIndex
2. LuceneIndex would be wrapped by AggregateIndex and would server
Fulltext queries
3. LucenePropertyIndex would not be wrapped and would only serve
queries which involve property restrictions.

With this existing logic would not be modified and we can move ahead
with Lucene based property index. Later once we unify them we can
tackle this issue

Chetan Mehrotra

Reply via email to