package com.bizosys.hsearch;
import java.io.PrintWriter;
import java.util.HashMap;
import java.util.Map;
import com.bizosys.hsearch.common.Account;
import com.bizosys.hsearch.common.Account.AccountInfo;
import com.bizosys.hsearch.common.HDocument;
import com.bizosys.hsearch.index.IndexWriter;
import com.bizosys.oneline.conf.Configuration;
import com.bizosys.oneline.services.Request;
import com.bizosys.oneline.services.Response;
import com.bizosys.oneline.services.ServiceFactory;
import com.bizosys.oneline.util.StringUtils;
import com.bizosys.oneline.util.XmlUtils;
public class HSearchLoad {
boolean isMultiClient = true;
AccountInfo acc = null;
boolean concurrency = true;
String APIKEY = "anonymous";
private void init() throws Exception {
Configuration conf = new Configuration();
ServiceFactory.getInstance().init(conf, null);
this.APIKEY = runOptions.get("apikey");
this.acc = Account.getAccount(APIKEY);
if ( null == acc) {
acc = new AccountInfo(APIKEY);
acc.name = APIKEY;
acc.maxbuckets = 15;
Account.storeAccount(acc);
System.out.println("New account is created");
} else {
IndexWriter.getInstance().truncate(this.APIKEY);
this.acc = Account.getAccount(APIKEY);
acc.maxbuckets = 15;
Account.storeAccount(acc);
System.out.println("Account already exist");
}
}
private void load() {
XmlUtils.xstream.alias("hdoc", HDocument.class);
SearchService ss = new SearchService();
ss.init(null, null);
HashMap<String, String> input = new HashMap<String, String>();
input.put("document.prestine", "<hdoc><locale>en</locale><preview>youtube</preview></hdoc>");
input.put("document.url", runOptions.get("document.url"));
input.put("document.type", runOptions.get("document.type"));
input.put("id.column", runOptions.get("id.column"));
input.put("url.column", runOptions.get("url.column"));
input.put("weight.column", runOptions.get("weight.column"));
input.put("columns.desc", runOptions.get("columns.desc"));
input.put("columns.separator", runOptions.get("columns.separator"));
input.put("linebreak", runOptions.get("linebreak"));
input.put("columns.format", runOptions.get("columns.format"));
input.put("columns.nonempty", runOptions.get("columns.nonempty"));
input.put("columns.title", runOptions.get("columns.title"));
input.put("columns.preview", runOptions.get("columns.preview"));
input.put("keyword.column", runOptions.get("keyword.column"));
input.put("index.start", runOptions.get("index.start"));
input.put("columns.indexable", runOptions.get("columns.indexable"));
input.put("index.batch.size", runOptions.get("index.batch.size"));
input.put("index.runplan", runOptions.get("index.runplan"));
Request req = new Request("search", "document.load", input);
req.isAuthenticated = true;
req.user = acc;
PrintWriter pw = new PrintWriter(System.out, true);
Response res = new Response(pw);
ss.process(req, res);
System.out.println("Processing Completed");
}
/**
* @param args
*/
public static Map<String, String> runOptions = new HashMap<String, String>(12);
public static void main(String[] args) throws Exception {
if ( null != args) {
for (String arg : args) {
String[] parts = StringUtils.getStrings(arg, '=');
if ( parts.length == 1) runOptions.put(parts[0], "");
else if ( parts.length == 2) runOptions.put(parts[0], parts[1]);
else {
System.err.println("Wrong input, " + arg);
System.exit(1);
}
}
}
System.out.println("Run Options :");
for (String option : runOptions.keySet()) {
System.out.println(" " + option + "\t\t" + runOptions.get(option));
}
HSearchLoad loader = new HSearchLoad();
loader.init();
loader.load();
}
}