Package org.apache.jackrabbit.core.query.lucene.hits

Examples of org.apache.jackrabbit.core.query.lucene.hits.Hits


        /**
         * {@inheritDoc}
         */
        public Hits getHits() throws IOException {
            long time = System.currentTimeMillis();
            Hits childrenHits = new AdaptingHits();
            Hits nameHits = new ScorerHits(nameTestScorer);
            int[] docs = new int[1];
            for (int h = nameHits.next(); h > -1; h = nameHits.next()) {
                docs = hResolver.getParents(h, docs);
                if (docs.length == 1) {
                    // optimize single value
                    if (docIds.contains(docs[0])) {
                        childrenHits.set(h);
View Full Code Here


        private void calculateChildren() throws IOException {
            if (hits == null) {

                // collect all context nodes
                Map uuids = new HashMap();
                final Hits contextHits = new AdaptingHits();
                contextScorer.score(new HitCollector() {
                    public void collect(int doc, float score) {
                        contextHits.set(doc);
                    }
                });

                // read the uuids of the context nodes
                for (int i = contextHits.next(); i > -1; i = contextHits.next()) {
                    String uuid = reader.document(i, FieldSelectors.UUID).get(FieldNames.UUID);
                    uuids.put(new Integer(i), uuid);
                }

                // collect all children of the context nodes
                Hits childrenHits = new AdaptingHits();
                if (nameTestScorer != null) {
                    Hits nameHits = new ScorerHits(nameTestScorer);
                    for (int h = nameHits.next(); h > -1; h = nameHits.next()) {
                        if (uuids.containsKey(new Integer(hResolver.getParent(h)))) {
                            childrenHits.set(h);
                        }
                    }
                } else {
View Full Code Here

                }

                // filter out documents that do not match the name test
                if (nameTest != null) {
                    Query nameQuery = new NameQuery(nameTest, version, nsMappings);
                    Hits nameHits = new ScorerHits(nameQuery.weight(searcher).scorer(reader));
                    for (int i = hits.nextSetBit(0); i >= 0; i = hits.nextSetBit(i + 1)) {
                        int doc = nameHits.skipTo(i);
                        if (doc == -1) {
                            // no more name tests, clear remaining
                            hits.clear(i, hits.length());
                        } else {
                            // assert doc >= i
View Full Code Here

                String uuid = reader.document(i, FieldSelectors.UUID).get(FieldNames.UUID);
                uuids.put(i, uuid);
            }

            // get child node entries for each hit
            Hits childrenHits = new AdaptingHits();
            for (String uuid : uuids.values()) {
                NodeId id = new NodeId(uuid);
                try {
                    long time = System.currentTimeMillis();
                    NodeState state = (NodeState) itemMgr.getItemState(id);
                    time = System.currentTimeMillis() - time;
                    log.debug("got NodeState with id {} in {} ms.", id, time);
                    List<ChildNodeEntry> entries;
                    if (nameTest != null) {
                        entries = state.getChildNodeEntries(nameTest);
                    } else {
                        // get all children
                        entries = state.getChildNodeEntries();
                    }
                    for (ChildNodeEntry entry : entries) {
                        NodeId childId = entry.getId();
                        Term uuidTerm = TermFactory.createUUIDTerm(childId.toString());
                        TermDocs docs = reader.termDocs(uuidTerm);
                        try {
                            if (docs.next()) {
                                childrenHits.set(docs.doc());
                            }
                        } finally {
                            docs.close();
                        }
                    }
View Full Code Here

        /**
         * {@inheritDoc}
         */
        public Hits getHits() throws IOException {
            long time = System.currentTimeMillis();
            Hits childrenHits = new AdaptingHits();
            Hits nameHits = new ScorerHits(nameTestScorer);
            int[] docs = new int[1];
            for (int h = nameHits.next(); h > -1; h = nameHits.next()) {
                docs = hResolver.getParents(h, docs);
                if (docs.length == 1) {
                    // optimize single value
                    if (docIds.contains(docs[0])) {
                        childrenHits.set(h);
View Full Code Here

                }

                // filter out documents that do not match the name test
                if (nameTest != null) {
                    Query nameQuery = new NameQuery(nameTest, version, nsMappings);
                    Hits nameHits = new ScorerHits(nameQuery.weight(searcher).scorer(reader, true, false));
                    for (int i = hits.nextSetBit(0); i >= 0; i = hits.nextSetBit(i + 1)) {
                        int doc = nameHits.skipTo(i);
                        if (doc == -1) {
                            // no more name tests, clear remaining
                            hits.clear(i, hits.length());
                        } else {
                            // assert doc >= i
View Full Code Here

                }

                // filter out documents that do not match the name test
                if (nameTest != null) {
                    Query nameQuery = new NameQuery(nameTest, version, nsMappings);
                    Hits nameHits = new ScorerHits(nameQuery.weight(searcher).scorer(reader, true, false));
                    for (int i = hits.nextSetBit(0); i >= 0; i = hits.nextSetBit(i + 1)) {
                        int doc = nameHits.skipTo(i);
                        if (doc == -1) {
                            // no more name tests, clear remaining
                            hits.clear(i, hits.length());
                        } else {
                            // assert doc >= i
View Full Code Here

                String uuid = reader.document(i, FieldSelectors.UUID).get(FieldNames.UUID);
                uuids.put(i, uuid);
            }

            // get child node entries for each hit
            Hits childrenHits = new AdaptingHits();
            for (String uuid : uuids.values()) {
                NodeId id = new NodeId(uuid);
                try {
                    long time = System.currentTimeMillis();
                    NodeState state = (NodeState) itemMgr.getItemState(id);
                    time = System.currentTimeMillis() - time;
                    log.debug("got NodeState with id {} in {} ms.", id, time);
                    List<ChildNodeEntry> entries;
                    if (nameTest != null) {
                        entries = state.getChildNodeEntries(nameTest);
                    } else {
                        // get all children
                        entries = state.getChildNodeEntries();
                    }
                    for (ChildNodeEntry entry : entries) {
                        NodeId childId = entry.getId();
                        Term uuidTerm = new Term(FieldNames.UUID, childId.toString());
                        TermDocs docs = reader.termDocs(uuidTerm);
                        try {
                            if (docs.next()) {
                                childrenHits.set(docs.doc());
                            }
                        } finally {
                            docs.close();
                        }
                    }
View Full Code Here

        /**
         * {@inheritDoc}
         */
        public Hits getHits() throws IOException {
            long time = System.currentTimeMillis();
            Hits childrenHits = new AdaptingHits();
            Hits nameHits = new ScorerHits(nameTestScorer);
            int[] docs = new int[1];
            for (int h = nameHits.next(); h > -1; h = nameHits.next()) {
                docs = hResolver.getParents(h, docs);
                if (docs.length == 1) {
                    // optimize single value
                    if (docIds.contains(docs[0])) {
                        childrenHits.set(h);
View Full Code Here

                }

                // filter out documents that do not match the name test
                if (nameTest != null) {
                    Query nameQuery = new NameQuery(nameTest, version, nsMappings);
                    Hits nameHits = new ScorerHits(nameQuery.weight(searcher).scorer(reader, true, false));
                    for (int i = hits.nextSetBit(0); i >= 0; i = hits.nextSetBit(i + 1)) {
                        int doc = nameHits.skipTo(i);
                        if (doc == -1) {
                            // no more name tests, clear remaining
                            hits.clear(i, hits.length());
                        } else {
                            // assert doc >= i
View Full Code Here

TOP

Related Classes of org.apache.jackrabbit.core.query.lucene.hits.Hits

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.