Nilesh has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/79928


Change subject: Moved recommender init to start of doPost; avoid duplicate 
properties in property list using HashSet.
......................................................................

Moved recommender init to start of doPost; avoid duplicate properties in 
property list using HashSet.

Change-Id: I8ec9fe35e407b521331979b500da2eb17bba6d07
---
M 
client/src/main/java/org/wikimedia/wikibase/entitysuggester/client/servlets/DataIngestServlet.java
1 file changed, 19 insertions(+), 14 deletions(-)


  git pull 
ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/WikidataEntitySuggester 
refs/changes/28/79928/1

diff --git 
a/client/src/main/java/org/wikimedia/wikibase/entitysuggester/client/servlets/DataIngestServlet.java
 
b/client/src/main/java/org/wikimedia/wikibase/entitysuggester/client/servlets/DataIngestServlet.java
index 0e35bf8..c119c41 100644
--- 
a/client/src/main/java/org/wikimedia/wikibase/entitysuggester/client/servlets/DataIngestServlet.java
+++ 
b/client/src/main/java/org/wikimedia/wikibase/entitysuggester/client/servlets/DataIngestServlet.java
@@ -2,12 +2,11 @@
 
 import com.google.common.base.Charsets;
 import java.io.*;
-import java.net.URISyntaxException;
 import java.nio.charset.Charset;
 import java.util.ArrayList;
+import java.util.HashSet;
 import java.util.NoSuchElementException;
 import java.util.zip.GZIPInputStream;
-import javax.naming.NamingException;
 import javax.servlet.ServletException;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
@@ -28,8 +27,8 @@
 public class DataIngestServlet extends AbstractEntitySuggesterServlet {
 
     /**
-     * Handle a HTTP POST request where the training file contents are sent in
-     * the POST body.
+     * Handle a HTTP POST request to read the contents of the training file,
+     * where each row contains wikibaseItem,wikibaseProperty,relativeScore.
      *
      * @param request
      * @param response
@@ -39,6 +38,19 @@
     @Override
     protected void doPost(HttpServletRequest request, HttpServletResponse 
response) throws IOException, ServletException {
         super.doPost(request, response);
+        if (getServletConfig().getServletContext().getAttribute("recommender") 
== null) {
+            try {
+                MyrrixClientConfiguration config = new 
MyrrixClientConfiguration();
+                config.setHost(request.getServerName());
+                config.setPort(request.getServerPort());
+                WebClientRecommender webClientRecommender = new 
WebClientRecommender(new TranslatingClientRecommender(new 
ClientRecommender(config)));
+                
getServletConfig().getServletContext().setAttribute("recommender", 
webClientRecommender);
+            } catch (TasteException te) {
+                
response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, te.toString());
+                getServletContext().log("Unexpected error in " + 
getClass().getSimpleName(), te);
+            }
+        }
+
         Reader reader;
         String contentEncoding = request.getHeader("Content-Encoding");
         if (contentEncoding == null) {
@@ -53,7 +65,7 @@
         }
 
         BufferedReader br = new BufferedReader(reader);
-        ArrayList<String> myrrixItemList = new ArrayList<String>();
+        HashSet<String> myrrixItemSet = new HashSet<String>();
         String temp;
         StringBuilder dataBuilder = new StringBuilder();
         while ((temp = br.readLine()) != null) {
@@ -64,19 +76,12 @@
                 for (int i = 1; i < chunks.length - 1; i++) { // Extract only 
the middle portion (the wikibaseProperty)
                     property += chunks[i];
                 }
-                myrrixItemList.add(property); // Creating the list of 
wikibaseProperties
+                myrrixItemSet.add(property); // Creating the list of 
wikibaseProperties
             }
         }
 
         try {
-            MyrrixClientConfiguration config = new MyrrixClientConfiguration();
-            config.setHost(request.getServerName());
-            config.setPort(request.getServerPort());
-            if 
(getServletConfig().getServletContext().getAttribute("recommender") == null) {
-                WebClientRecommender webClientRecommender = new 
WebClientRecommender(new TranslatingClientRecommender(new 
ClientRecommender(config)));
-                
getServletConfig().getServletContext().setAttribute("recommender", 
webClientRecommender);
-            }
-            getClientRecommender().addPropertyIDs(myrrixItemList);
+            getClientRecommender().addPropertyIDs(new 
ArrayList<String>(myrrixItemSet));
             getClientRecommender().ingest(new 
StringReader(dataBuilder.toString()));
         } catch (IllegalArgumentException iae) {
             response.sendError(HttpServletResponse.SC_BAD_REQUEST, 
iae.toString());

-- 
To view, visit https://gerrit.wikimedia.org/r/79928
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I8ec9fe35e407b521331979b500da2eb17bba6d07
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/WikidataEntitySuggester
Gerrit-Branch: master
Gerrit-Owner: Nilesh <[email protected]>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to