[ 
https://issues.apache.org/jira/browse/JCR-1064?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12522529
 ] 

Ard Schrijvers commented on JCR-1064:
-------------------------------------

Added patch again.

The problem is that in de SearchIndex in the doInti() the 
index.getIndexReader().numDocs() is always larger then 0 (this was not true 
untill recently, because it worked for me before)

The problem is, that in MultiIndex, when if (indexNames.size() == 0) { , a 
persistent index is created. The lucene Docs that are added then do not use the 
nodeIndexer, and thus, the FieldNames.PROPERTIES_SET does not occur, and 
numDocs > 0, so always old index format style.

I can add in MultiIndex a instance variable and a getter, that is

boolean created; 

that I can call from IndexSearcher

In doInit(), I get

1) FieldNames.PROPERTIES_SET  exists, or
2) numDocs() == 0 or,
3) index.getNewlyCreated() 

I do not see how it can be done otherwise, because I need to know wether for 
the particular workspace, a persistent index is created for the first time....I 
do not really like the dependencies on other code for the backwards 
compatibility though. WDOT?




> Optimize queries that check for the existence of a property
> -----------------------------------------------------------
>
>                 Key: JCR-1064
>                 URL: https://issues.apache.org/jira/browse/JCR-1064
>             Project: Jackrabbit
>          Issue Type: Improvement
>          Components: indexing
>    Affects Versions: 1.3.1
>            Reporter: Ard Schrijvers
>            Priority: Minor
>             Fix For: 1.4
>
>         Attachments: JCR-1064-DEPR.patch
>
>
> //[EMAIL PROTECTED] is transformed into the 
> org.apache.jackrabbit.core.query.lucene.MatchAllQuery, that through the 
> MatchAllWeight uses the MatchAllScorer.  The calculateDocFilter() in 
> MatchAllScorer  does not scale and becomes slow for growing number of nodes. 
> Solution: lucene documents will get a new Field:
> public static final String PROPERTIES_SET = "_:PROPERTIES_SET".intern();
> that holds the available properties of this document. 
> NOTE: Lucene indices build without this performance improvement should still 
> work and fall back to the original implementation

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to