Package org.exoplatform.services.jcr.impl.core.query.lucene.hits

Examples of org.exoplatform.services.jcr.impl.core.query.lucene.hits.Hits


            // 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());
                  }
View Full Code Here


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

         // get child node entries for each hit
         Hits childrenHits = new AdaptingHits();
         for (Iterator it = uuids.values().iterator(); it.hasNext();)
         {
            String uuid = (String)it.next();
            try
            {
               if (nameTest != null && version.getVersion() >= IndexFormatVersion.V4.getVersion())
               {
                  StringBuilder path = new StringBuilder(256);
                  path.append(uuid == null ? "" : uuid).append('/').append(nameTest.getAsString());
                  TermDocs docs = reader.termDocs(new Term(FieldNames.PATH, path.toString()));
                  try
                  {
                     while (docs.next())
                     {
                        childrenHits.set(docs.doc());
                     }

                  }
                  finally
                  {
                     docs.close();
                  }
               }
               else
               {
                  long time = System.currentTimeMillis();
                  NodeData state = (NodeData)itemMgr.getItemData(uuid);
                  time = System.currentTimeMillis() - time;
                  LOG.debug("got NodeState with id {} in {} ms.", uuid, new Long(time));
                  Iterator<NodeData> entries;
                  if (nameTest != null)
                  {
                     List<NodeData> childs = itemMgr.getChildNodesData(state);

                     List<NodeData> datas = new ArrayList<NodeData>();
                     if (childs != null)
                     {
                        for (NodeData nodeData : childs)
                        {
                           if (nameTest.equals(nodeData.getQPath().getName()))
                              datas.add(nodeData);
                        }
                     }
                     entries = datas.iterator();
                  }
                  else
                  {
                     // get all children
                     entries = itemMgr.getChildNodesData(state).iterator();
                  }
                  while (entries.hasNext())
                  {
                     String childId = entries.next().getIdentifier();
                     Term uuidTerm = new Term(FieldNames.UUID, childId);
                     TermDocs docs = reader.termDocs(uuidTerm);
                     try
                     {
                        if (docs.next())
                        {
                           childrenHits.set(docs.doc());
                        }
                     }
                     finally
                     {
                        docs.close();
View Full Code Here

         long time = 0;
         if (LOG.isDebugEnabled())
         {
            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
View Full Code Here

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

         // get child node entries for each hit
         Hits childrenHits = new AdaptingHits();
         for (Iterator it = uuids.values().iterator(); it.hasNext();)
         {
            String uuid = (String)it.next();
            //NodeId id = new NodeId(UUID.fromString(uuid));
            try
            {
               long time = System.currentTimeMillis();
               NodeData state = (NodeData)itemMgr.getItemData(uuid);
               time = System.currentTimeMillis() - time;
               log.debug("got NodeState with id {} in {} ms.", uuid, new Long(time));
               Iterator<NodeData> entries;
               if (nameTest != null)
               {
                  //NodeData childNodeData = (NodeData)itemMgr.getItemData(state, new QPathEntry(nameTest, 1));
                  // //state.getChildNodeEntries(nameTest).iterator();
                  List<NodeData> childs = itemMgr.getChildNodesData(state);

                  List<NodeData> datas = new ArrayList<NodeData>();
                  if (childs != null)
                  {
                     for (NodeData nodeData : childs)
                     {
                        if (nameTest.equals(nodeData.getQPath().getName()))
                        {
                           datas.add(nodeData);
                        }
                     }

                  }
                  entries = datas.iterator();//itemMgr.getChildNodesData(childNodeData).iterator();
               }
               else
               {
                  // get all children
                  entries = itemMgr.getChildNodesData(state).iterator();
               }
               while (entries.hasNext())
               {
                  String childId = entries.next().getIdentifier();
                  Term uuidTerm = new Term(FieldNames.UUID, childId);
                  TermDocs docs = reader.termDocs(uuidTerm);
                  try
                  {
                     if (docs.next())
                     {
                        childrenHits.set(docs.doc());
                     }
                  }
                  finally
                  {
                     docs.close();
View Full Code Here

       */
      @Override
      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
View Full Code Here

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

         // get child node entries for each hit
         Hits childrenHits = new AdaptingHits();
         for (Iterator it = uuids.values().iterator(); it.hasNext();)
         {
            String uuid = (String)it.next();
            //NodeId id = new NodeId(UUID.fromString(uuid));
            try
            {
               long time = 0;
               if (log.isDebugEnabled())
               {
                  time = System.currentTimeMillis();
               }
               NodeData state = (NodeData)itemMgr.getItemData(uuid);
               if (log.isDebugEnabled())
               {
                  time = System.currentTimeMillis() - time;
                  log.debug("got NodeState with id {} in {} ms.", uuid, new Long(time));                 
               }
               Iterator<NodeData> entries;
               if (nameTest != null)
               {
                  //NodeData childNodeData = (NodeData)itemMgr.getItemData(state, new QPathEntry(nameTest, 1));
                  // //state.getChildNodeEntries(nameTest).iterator();
                  List<NodeData> childs = itemMgr.getChildNodesData(state);

                  List<NodeData> datas = new ArrayList<NodeData>();
                  if (childs != null)
                  {
                     for (NodeData nodeData : childs)
                     {
                        if (nameTest.equals(nodeData.getQPath().getName()))
                        {
                           datas.add(nodeData);
                        }
                     }

                  }
                  entries = datas.iterator();//itemMgr.getChildNodesData(childNodeData).iterator();
               }
               else
               {
                  // get all children
                  entries = itemMgr.getChildNodesData(state).iterator();
               }
               while (entries.hasNext())
               {
                  String childId = entries.next().getIdentifier();
                  Term uuidTerm = new Term(FieldNames.UUID, childId);
                  TermDocs docs = reader.termDocs(uuidTerm);
                  try
                  {
                     if (docs.next())
                     {
                        childrenHits.set(docs.doc());
                     }
                  }
                  finally
                  {
                     docs.close();
View Full Code Here

         long time = 0;
         if (log.isDebugEnabled())
         {
            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
View Full Code Here

         if (hits == null)
         {

            // collect all context nodes
            List uuids = new ArrayList();
            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
            int i = contextHits.next();
            while (i > -1)
            {
               String uuid = reader.document(i, new UUIDFieldSelector()).get(FieldNames.UUID);
               uuids.add(uuid);
               i = contextHits.next();
            }

            // collect all children of the context nodes
            Hits childrenHits = new AdaptingHits();

            TermDocs docs = reader.termDocs();
            try
            {
               for (Iterator it = uuids.iterator(); it.hasNext();)
               {
                  docs.seek(new Term(FieldNames.PARENT, (String)it.next()));
                  while (docs.next())
                  {
                     childrenHits.set(docs.doc());
                  }
               }
            }
            finally
            {
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
View Full Code Here

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

         // get child node entries for each hit
         Hits childrenHits = new AdaptingHits();
         for (Iterator it = uuids.values().iterator(); it.hasNext();)
         {
            String uuid = (String)it.next();
            //NodeId id = new NodeId(UUID.fromString(uuid));
            try
            {
               if (nameTest != null && version.getVersion() >= IndexFormatVersion.V4.getVersion())
               {
                  StringBuilder path = new StringBuilder(256);
                  path.append(uuid == null ? "" : uuid).append('/').append(nameTest.getAsString());
                  TermDocs docs = reader.termDocs(new Term(FieldNames.PATH, path.toString()));
                  try
                  {
                     while (docs.next())
                     {
                        childrenHits.set(docs.doc());
                     }
                  }
                  finally
                  {
                     docs.close();
                  }
               }
               else
               {
                  long time = System.currentTimeMillis();
                  NodeData state = (NodeData)itemMgr.getItemData(uuid);
                  time = System.currentTimeMillis() - time;
                  log.debug("got NodeState with id {} in {} ms.", uuid, new Long(time));
                  Iterator<NodeData> entries;
                  if (nameTest != null)
                  {
                     List<NodeData> childs = itemMgr.getChildNodesData(state);

                     List<NodeData> datas = new ArrayList<NodeData>();
                     if (childs != null)
                     {
                        for (NodeData nodeData : childs)
                        {
                           if (nameTest.equals(nodeData.getQPath().getName()))
                           {
                              datas.add(nodeData);
                           }
                        }
                     }
                     entries = datas.iterator();
                  }
                  else
                  {
                     // get all children
                     entries = itemMgr.getChildNodesData(state).iterator();
                  }
                  while (entries.hasNext())
                  {
                     String childId = entries.next().getIdentifier();
                     Term uuidTerm = new Term(FieldNames.UUID, childId);
                     TermDocs docs = reader.termDocs(uuidTerm);
                     try
                     {
                        if (docs.next())
                        {
                           childrenHits.set(docs.doc());
                        }
                     }
                     finally

                     {
View Full Code Here

TOP

Related Classes of org.exoplatform.services.jcr.impl.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.