jackrabbit-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Ard Schrijvers (JIRA)" <j...@apache.org>
Subject [jira] Commented: (JCR-1064) Optimize queries that check for the existence of a property
Date Thu, 23 Aug 2007 13:16:32 GMT

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

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

AFAICS, the matchAllScorer won't be needed anymore with the new index format. Therefor, I
won't add the changes to matchAllScorer that I had, because it implies that it scorer needs
to know the format. For those interested, the improvement was like:

        if(newFormat){
        	TermDocs docs = reader.termDocs(new Term(FieldNames.PROPERTIES_SET,field));
        	while (docs.next()) {
                docFilter.set(docs.doc());
            }
        	docs.close();
        	
        } else {
	        String namedValue = FieldNames.createNamedValue(field, "");
	        TermEnum terms = reader.terms(new Term(FieldNames.PROPERTIES, namedValue));
	        try {
	            TermDocs docs = reader.termDocs();
	            try {
	                while (terms.term() != null
	                        && terms.term().field() == FieldNames.PROPERTIES
	                        && terms.term().text().startsWith(namedValue)) {
	                    docs.seek(terms);
	                    while (docs.next()) {
	                        docFilter.set(docs.doc());
	                    }
	                    terms.next();
	                }
	            } finally {
	                docs.close();
	            }
	        } finally {
	            terms.close();
	        }
        }

> 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
>
>
> //*[@mytext] 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.


Mime
View raw message