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

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


            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

            // 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();
            //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

       * {@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
            {
               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

       * {@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

            // 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> datas = new ArrayList<NodeData>();
                     if (indexConfig == null || !indexConfig.isExcluded(state))
                     {
                        List<NodeData> childs = itemMgr.getChildNodesData(state);

                        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())
                  {
                     NodeData nodeData = entries.next();
                     if (indexConfig == null || !indexConfig.isExcluded(nodeData))
                     {
                        String childId = nodeData.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

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.