lucene-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From dsmi...@apache.org
Subject svn commit: r1598141 - /lucene/dev/trunk/solr/core/src/java/org/apache/solr/handler/component/ExpandComponent.java
Date Wed, 28 May 2014 21:15:43 GMT
Author: dsmiley
Date: Wed May 28 21:15:43 2014
New Revision: 1598141

URL: http://svn.apache.org/r1598141
Log:
Auto index & optimize imports.  And switch to java5 for-each in place of some iterators,
generics issues.

Modified:
    lucene/dev/trunk/solr/core/src/java/org/apache/solr/handler/component/ExpandComponent.java

Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/handler/component/ExpandComponent.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/handler/component/ExpandComponent.java?rev=1598141&r1=1598140&r2=1598141&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/handler/component/ExpandComponent.java
(original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/handler/component/ExpandComponent.java
Wed May 28 21:15:43 2014
@@ -17,19 +17,23 @@
 
 package org.apache.solr.handler.component;
 
+import com.carrotsearch.hppc.IntObjectMap;
+import com.carrotsearch.hppc.IntObjectOpenHashMap;
+import com.carrotsearch.hppc.IntOpenHashSet;
+import com.carrotsearch.hppc.cursors.IntObjectCursor;
+import com.carrotsearch.hppc.cursors.ObjectCursor;
 import org.apache.lucene.index.AtomicReader;
 import org.apache.lucene.index.AtomicReaderContext;
 import org.apache.lucene.index.DocValues;
 import org.apache.lucene.index.SortedDocValues;
-import org.apache.lucene.search.LeafCollector;
+import org.apache.lucene.search.Collector;
 import org.apache.lucene.search.DocIdSetIterator;
+import org.apache.lucene.search.LeafCollector;
+import org.apache.lucene.search.Query;
 import org.apache.lucene.search.ScoreDoc;
 import org.apache.lucene.search.Scorer;
-import org.apache.lucene.search.SimpleCollector;
 import org.apache.lucene.search.Sort;
 import org.apache.lucene.search.TopDocs;
-import org.apache.lucene.search.Query;
-import org.apache.lucene.search.Collector;
 import org.apache.lucene.search.TopDocsCollector;
 import org.apache.lucene.search.TopFieldCollector;
 import org.apache.lucene.search.TopScoreDocCollector;
@@ -37,28 +41,23 @@ import org.apache.lucene.util.BytesRef;
 import org.apache.lucene.util.CharsRef;
 import org.apache.lucene.util.FixedBitSet;
 import org.apache.solr.common.SolrDocumentList;
+import org.apache.solr.common.params.ExpandParams;
 import org.apache.solr.common.params.ShardParams;
+import org.apache.solr.common.params.SolrParams;
+import org.apache.solr.common.util.NamedList;
+import org.apache.solr.core.PluginInfo;
+import org.apache.solr.core.SolrCore;
+import org.apache.solr.request.SolrQueryRequest;
+import org.apache.solr.schema.FieldType;
 import org.apache.solr.search.CollapsingQParserPlugin;
 import org.apache.solr.search.DocIterator;
 import org.apache.solr.search.DocList;
+import org.apache.solr.search.DocSlice;
 import org.apache.solr.search.QParser;
 import org.apache.solr.search.QueryParsing;
-import org.apache.solr.schema.FieldType;
-import org.apache.solr.common.params.SolrParams;
-import org.apache.solr.common.params.ExpandParams;
-import org.apache.solr.common.util.NamedList;
-import org.apache.solr.request.SolrQueryRequest;
-import org.apache.solr.search.DocSlice;
 import org.apache.solr.search.SolrIndexSearcher;
 import org.apache.solr.util.plugin.PluginInfoInitialized;
 import org.apache.solr.util.plugin.SolrCoreAware;
-import org.apache.solr.core.PluginInfo;
-import org.apache.solr.core.SolrCore;
-import com.carrotsearch.hppc.IntObjectMap;
-import com.carrotsearch.hppc.IntObjectOpenHashMap;
-import com.carrotsearch.hppc.IntOpenHashSet;
-import com.carrotsearch.hppc.cursors.IntObjectCursor;
-import com.carrotsearch.hppc.cursors.ObjectCursor;
 
 import java.io.IOException;
 import java.net.MalformedURLException;
@@ -66,49 +65,48 @@ import java.net.URL;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
-import java.util.Iterator;
 import java.util.Map;
 
 /**
-  * The ExpandComponent is designed to work with the CollapsingPostFilter.
-  * The CollapsingPostFilter collapses a result set on a field.
-  * <p/>
-  * The ExpandComponent expands the collapsed groups for a single page.
-  * <p/>
-  * http parameters:
-  * <p/>
-  * expand=true <br/>
-  * expand.rows=5 <br/>
-  * expand.sort=field asc|desc<br/>
-  * expand.q=*:* (optional, overrides the main query)<br/>
-  * expand.fq=type:child (optional, overrides the main filter queries)<br/>
-  * expand.field=field (mandatory if the not used with the CollapsingQParserPlugin)<br/>
-  **/
-
+ * The ExpandComponent is designed to work with the CollapsingPostFilter.
+ * The CollapsingPostFilter collapses a result set on a field.
+ * <p/>
+ * The ExpandComponent expands the collapsed groups for a single page.
+ * <p/>
+ * http parameters:
+ * <p/>
+ * expand=true <br/>
+ * expand.rows=5 <br/>
+ * expand.sort=field asc|desc<br/>
+ * expand.q=*:* (optional, overrides the main query)<br/>
+ * expand.fq=type:child (optional, overrides the main filter queries)<br/>
+ * expand.field=field (mandatory if the not used with the CollapsingQParserPlugin)<br/>
+ */
 public class ExpandComponent extends SearchComponent implements PluginInfoInitialized, SolrCoreAware
{
   public static final String COMPONENT_NAME = "expand";
   private PluginInfo info = PluginInfo.EMPTY_INFO;
 
-      @Override
+  @Override
   public void init(PluginInfo info) {
-      this.info = info;
+    this.info = info;
   }
 
-      @Override
+  @Override
   public void prepare(ResponseBuilder rb) throws IOException {
-    if (rb.req.getParams().getBool(ExpandParams.EXPAND,false)) {
+    if (rb.req.getParams().getBool(ExpandParams.EXPAND, false)) {
       rb.doExpand = true;
     }
   }
-      @Override
+
+  @Override
   public void inform(SolrCore core) {
 
   }
 
-        @Override
+  @Override
   public void process(ResponseBuilder rb) throws IOException {
 
-    if(!rb.doExpand) {
+    if (!rb.doExpand) {
       return;
     }
 
@@ -118,24 +116,24 @@ public class ExpandComponent extends Sea
     boolean isShard = params.getBool(ShardParams.IS_SHARD, false);
     String ids = params.get(ShardParams.IDS);
 
-    if(ids == null && isShard) {
+    if (ids == null && isShard) {
       return;
     }
 
     String field = params.get(ExpandParams.EXPAND_FIELD);
-    if(field == null) {
+    if (field == null) {
       List<Query> filters = rb.getFilters();
-      if(filters != null) {
-        for(Query q : filters) {
-          if(q instanceof CollapsingQParserPlugin.CollapsingPostFilter) {
-              CollapsingQParserPlugin.CollapsingPostFilter cp = (CollapsingQParserPlugin.CollapsingPostFilter)q;
-              field = cp.getField();
+      if (filters != null) {
+        for (Query q : filters) {
+          if (q instanceof CollapsingQParserPlugin.CollapsingPostFilter) {
+            CollapsingQParserPlugin.CollapsingPostFilter cp = (CollapsingQParserPlugin.CollapsingPostFilter)
q;
+            field = cp.getField();
           }
         }
       }
     }
 
-    if(field == null) {
+    if (field == null) {
       throw new IOException("Expand field is null.");
     }
 
@@ -146,29 +144,29 @@ public class ExpandComponent extends Sea
 
     Sort sort = null;
 
-    if(sortParam != null) {
+    if (sortParam != null) {
       sort = QueryParsing.parseSortSpec(sortParam, rb.req).getSort();
     }
 
-    Query query = null;
-    if(qs == null) {
+    Query query;
+    if (qs == null) {
       query = rb.getQuery();
     } else {
       try {
         QParser parser = QParser.getParser(qs, null, req);
         query = parser.getQuery();
-      } catch(Exception e) {
+      } catch (Exception e) {
         throw new IOException(e);
       }
     }
 
-    List<Query> newFilters = new ArrayList();
+    List<Query> newFilters = new ArrayList<>();
 
-    if(fqs == null) {
+    if (fqs == null) {
       List<Query> filters = rb.getFilters();
-      if(filters != null) {
-        for(Query q : filters) {
-          if(!(q instanceof CollapsingQParserPlugin.CollapsingPostFilter)) {
+      if (filters != null) {
+        for (Query q : filters) {
+          if (!(q instanceof CollapsingQParserPlugin.CollapsingPostFilter)) {
             newFilters.add(q);
           }
         }
@@ -176,12 +174,12 @@ public class ExpandComponent extends Sea
     } else {
       try {
         for (String fq : fqs) {
-          if (fq != null && fq.trim().length()!=0 && !fq.equals("*:*")) {
+          if (fq != null && fq.trim().length() != 0 && !fq.equals("*:*"))
{
             QParser fqp = QParser.getParser(fq, null, req);
             newFilters.add(fqp.getQuery());
           }
         }
-      } catch(Exception e) {
+      } catch (Exception e) {
         throw new IOException(e);
       }
     }
@@ -191,25 +189,25 @@ public class ExpandComponent extends Sea
     SortedDocValues values = DocValues.getSorted(reader, field);
     FixedBitSet groupBits = new FixedBitSet(values.getValueCount());
     DocList docList = rb.getResults().docList;
-    IntOpenHashSet collapsedSet = new IntOpenHashSet(docList.size()*2);
+    IntOpenHashSet collapsedSet = new IntOpenHashSet(docList.size() * 2);
 
     DocIterator idit = docList.iterator();
 
-    while(idit.hasNext()) {
+    while (idit.hasNext()) {
       int doc = idit.nextDoc();
       int ord = values.getOrd(doc);
-      if(ord > -1) {
+      if (ord > -1) {
         groupBits.set(ord);
         collapsedSet.add(doc);
       }
     }
 
-    Collector collector = null;
+    Collector collector;
     if (sort != null)
       sort = sort.rewrite(searcher);
     GroupExpandCollector groupExpandCollector = new GroupExpandCollector(values, groupBits,
collapsedSet, limit, sort);
     SolrIndexSearcher.ProcessedFilter pfilter = searcher.getProcessedFilter(null, newFilters);
-    if(pfilter.postFilter != null) {
+    if (pfilter.postFilter != null) {
       pfilter.postFilter.setLastDelegate(groupExpandCollector);
       collector = pfilter.postFilter;
     } else {
@@ -218,22 +216,19 @@ public class ExpandComponent extends Sea
 
     searcher.search(query, pfilter.filter, collector);
     IntObjectMap groups = groupExpandCollector.getGroups();
-    Iterator<IntObjectCursor> it = groups.iterator();
     Map<String, DocSlice> outMap = new HashMap<>();
     BytesRef bytesRef = new BytesRef();
     CharsRef charsRef = new CharsRef();
     FieldType fieldType = searcher.getSchema().getField(field).getType();
-
-    while(it.hasNext()) {
-      IntObjectCursor cursor = it.next();
+    for (IntObjectCursor cursor : groups) {
       int ord = cursor.key;
-      TopDocsCollector topDocsCollector = (TopDocsCollector)cursor.value;
+      TopDocsCollector topDocsCollector = (TopDocsCollector) cursor.value;
       TopDocs topDocs = topDocsCollector.topDocs();
       ScoreDoc[] scoreDocs = topDocs.scoreDocs;
-      if(scoreDocs.length > 0) {
+      if (scoreDocs.length > 0) {
         int[] docs = new int[scoreDocs.length];
         float[] scores = new float[scoreDocs.length];
-        for(int i=0; i<docs.length; i++) {
+        for (int i = 0; i < docs.length; i++) {
           ScoreDoc scoreDoc = scoreDocs[i];
           docs[i] = scoreDoc.doc;
           scores[i] = scoreDoc.score;
@@ -248,31 +243,32 @@ public class ExpandComponent extends Sea
 
     rb.rsp.add("expanded", outMap);
   }
-        @Override
+
+  @Override
   public void modifyRequest(ResponseBuilder rb, SearchComponent who, ShardRequest sreq) {
 
   }
-        @Override
+
+  @SuppressWarnings("unchecked")
+  @Override
   public void handleResponses(ResponseBuilder rb, ShardRequest sreq) {
 
-    if(!rb.doExpand) {
+    if (!rb.doExpand) {
       return;
     }
 
     if ((sreq.purpose & ShardRequest.PURPOSE_GET_FIELDS) != 0) {
       SolrQueryRequest req = rb.req;
-      Map expanded = (Map)req.getContext().get("expanded");
-      if(expanded == null) {
+      Map expanded = (Map) req.getContext().get("expanded");
+      if (expanded == null) {
         expanded = new HashMap();
         req.getContext().put("expanded", expanded);
       }
 
       for (ShardResponse srsp : sreq.responses) {
         NamedList response = srsp.getSolrResponse().getResponse();
-        Map ex = (Map)response.get("expanded");
-        Iterator<Map.Entry<String,SolrDocumentList>>it = ex.entrySet().iterator();
-        while(it.hasNext()) {
-          Map.Entry<String, SolrDocumentList> entry = it.next();
+        Map ex = (Map) response.get("expanded");
+        for (Map.Entry<String, SolrDocumentList> entry : (Iterable<Map.Entry<String,
SolrDocumentList>>) ex.entrySet()) {
           String name = entry.getKey();
           SolrDocumentList val = entry.getValue();
           expanded.put(name, val);
@@ -280,10 +276,11 @@ public class ExpandComponent extends Sea
       }
     }
   }
-        @Override
+
+  @Override
   public void finishStage(ResponseBuilder rb) {
 
-    if(!rb.doExpand) {
+    if (!rb.doExpand) {
       return;
     }
 
@@ -291,8 +288,8 @@ public class ExpandComponent extends Sea
       return;
     }
 
-    Map expanded = (Map)rb.req.getContext().get("expanded");
-    if(expanded == null) {
+    Map expanded = (Map) rb.req.getContext().get("expanded");
+    if (expanded == null) {
       expanded = new HashMap();
     }
 
@@ -308,11 +305,11 @@ public class ExpandComponent extends Sea
 
     public GroupExpandCollector(SortedDocValues docValues, FixedBitSet groupBits, IntOpenHashSet
collapsedSet, int limit, Sort sort) throws IOException {
       int numGroups = collapsedSet.size();
-      groups = new IntObjectOpenHashMap<>(numGroups*2);
+      groups = new IntObjectOpenHashMap<>(numGroups * 2);
       DocIdSetIterator iterator = groupBits.iterator();
-      int group = -1;
-      while((group = iterator.nextDoc()) != DocIdSetIterator.NO_MORE_DOCS) {
-        Collector collector = (sort == null) ? TopScoreDocCollector.create(limit, true) :
TopFieldCollector.create(sort,limit, false, false,false, true);
+      int group;
+      while ((group = iterator.nextDoc()) != DocIdSetIterator.NO_MORE_DOCS) {
+        Collector collector = (sort == null) ? TopScoreDocCollector.create(limit, true) :
TopFieldCollector.create(sort, limit, false, false, false, true);
         groups.put(group, collector);
       }
 
@@ -338,9 +335,9 @@ public class ExpandComponent extends Sea
 
         @Override
         public void collect(int docId) throws IOException {
-          int doc = docId+docBase;
+          int doc = docId + docBase;
           int ord = docValues.getOrd(doc);
-          if(ord > -1 && groupBits.get(ord) && !collapsedSet.contains(doc))
{
+          if (ord > -1 && groupBits.get(ord) && !collapsedSet.contains(doc))
{
             LeafCollector c = leafCollectors.get(ord);
             c.collect(docId);
           }
@@ -363,7 +360,7 @@ public class ExpandComponent extends Sea
   ///  SolrInfoMBean
   ////////////////////////////////////////////
 
-    @Override
+  @Override
   public String getDescription() {
     return "Expand Component";
   }



Mime
View raw message