Author: ssmiweve
Date: 2008-08-19 14:59:18 +0200 (Tue, 19 Aug 2008)
New Revision: 6767

Added:
   
trunk/generic.sesam/search-command-control/default/src/main/java/no/sesat/search/mode/command/SolrSearchCommand.java
Log:
Issue SKER4949:  (Solr SearchCommand implementation)

Added: 
trunk/generic.sesam/search-command-control/default/src/main/java/no/sesat/search/mode/command/SolrSearchCommand.java
===================================================================
--- 
trunk/generic.sesam/search-command-control/default/src/main/java/no/sesat/search/mode/command/SolrSearchCommand.java
                                (rev 0)
+++ 
trunk/generic.sesam/search-command-control/default/src/main/java/no/sesat/search/mode/command/SolrSearchCommand.java
        2008-08-19 12:59:18 UTC (rev 6767)
@@ -0,0 +1,120 @@
+/*
+ * Copyright (2008) Schibsted Søk AS
+ * This file is part of SESAT.
+ *
+ *   SESAT is free software: you can redistribute it and/or modify
+ *   it under the terms of the GNU Affero General Public License as published 
by
+ *   the Free Software Foundation, either version 3 of the License, or
+ *   (at your option) any later version.
+ *
+ *   SESAT is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU Affero General Public License for more details.
+ *
+ *   You should have received a copy of the GNU Affero General Public License
+ *   along with SESAT.  If not, see <http://www.gnu.org/licenses/>.
+ */
+package no.sesat.search.mode.command;
+
+import java.net.MalformedURLException;
+import java.util.Map;
+import no.sesat.search.result.BasicResultItem;
+import no.sesat.search.result.BasicResultList;
+import no.sesat.search.result.ResultItem;
+import no.sesat.search.result.ResultList;
+import org.apache.log4j.Logger;
+import org.apache.solr.client.solrj.SolrQuery;
+import org.apache.solr.client.solrj.SolrServer;
+import org.apache.solr.client.solrj.SolrServerException;
+import org.apache.solr.client.solrj.impl.CommonsHttpSolrServer;
+import org.apache.solr.client.solrj.response.QueryResponse;
+import org.apache.solr.common.SolrDocument;
+import org.apache.solr.common.SolrDocumentList;
+
+/** Searching against a Solr index using the Solrj client.
+ *
+ *
+ * @version $Id$
+ */
+public class SolrSearchCommand extends AbstractSearchCommand{
+
+    // Constants -----------------------------------------------------
+
+    private static final Logger LOG = 
Logger.getLogger(SolrSearchCommand.class);
+
+    // Attributes ----------------------------------------------------
+
+    private SolrServer server;
+
+    // Static --------------------------------------------------------
+
+    // Constructors --------------------------------------------------
+
+    public SolrSearchCommand(final Context cxt) {
+
+        super(cxt);
+        try {
+            server = new 
CommonsHttpSolrServer("http://sch-solr-test01.dev.osl.basefarm.net:8080/solr";);
+
+        } catch (MalformedURLException ex) {
+            LOG.error(ex.getMessage(), ex);
+        }
+    }
+
+    @Override
+    public ResultList<ResultItem> execute() {
+
+        final ResultList<ResultItem> searchResult = new 
BasicResultList<ResultItem>();
+
+        try {
+            // set up query
+            final SolrQuery query = new SolrQuery()
+                    .setQuery(getTransformedQuery())
+                    .setStart(getOffset())
+                    .setRows(getSearchConfiguration().getResultsToReturn());
+
+            // query
+            final QueryResponse response = server.query(query);
+            final SolrDocumentList docs = response.getResults();
+
+            // iterate through docs
+            for(SolrDocument doc : docs){
+
+                searchResult.addResult(createItem(doc));
+            }
+
+        } catch (SolrServerException ex) {
+            LOG.error(ex.getMessage(), ex);
+        }
+        return searchResult;
+    }
+
+    // Public --------------------------------------------------------
+
+    // Z implementation ----------------------------------------------
+
+    // Y overrides ---------------------------------------------------
+
+    // Package protected ---------------------------------------------
+
+    // Protected -----------------------------------------------------
+
+
+    protected BasicResultItem createItem(final SolrDocument doc) {
+
+        BasicResultItem item = new BasicResultItem();
+
+        for (final Map.Entry<String,String> entry : 
getSearchConfiguration().getResultFieldMap().entrySet()){
+
+            item = item.addField(entry.getValue(), 
(String)doc.getFieldValue(entry.getKey()));
+
+        }
+
+        return item;
+    }
+
+    // Private -------------------------------------------------------
+
+    // Inner classes -------------------------------------------------
+}


Property changes on: 
trunk/generic.sesam/search-command-control/default/src/main/java/no/sesat/search/mode/command/SolrSearchCommand.java
___________________________________________________________________
Name: svn:keywords
   + Id

_______________________________________________
Kernel-commits mailing list
[email protected]
http://sesat.no/mailman/listinfo/kernel-commits

Reply via email to