enhanced exists()-method for solr; should reduce a lot of IO during DHT

target selection
pull/1/head
Michael Peter Christen 12 years ago
parent 72f165d58b
commit a01e47b992

@ -62,10 +62,6 @@ public abstract class AbstractSolrConnector implements SolrConnector {
public boolean exists(final String fieldName, final String key) throws IOException { public boolean exists(final String fieldName, final String key) throws IOException {
if (fieldName == null) return false; if (fieldName == null) return false;
try { try {
if (fieldName.equals(YaCySchema.id.getSolrFieldName())) {
final SolrDocument doc = getById(key, fieldName);
return doc != null;
}
long count = getQueryCount(fieldName + ":\"" + key + "\""); long count = getQueryCount(fieldName + ":\"" + key + "\"");
return count > 0; return count > 0;
} catch (final Throwable e) { } catch (final Throwable e) {
@ -73,7 +69,7 @@ public abstract class AbstractSolrConnector implements SolrConnector {
return false; return false;
} }
} }
@Override @Override
public Object getFieldById(final String key, final String field) throws IOException { public Object getFieldById(final String key, final String field) throws IOException {
SolrDocument doc = getById(key, field); SolrDocument doc = getById(key, field);

@ -144,7 +144,7 @@ public class EmbeddedSolrConnector extends SolrServerConnector implements SolrCo
req.getContext().put("webapp", CONTEXT); req.getContext().put("webapp", CONTEXT);
return req; return req;
} }
public SolrQueryResponse query(SolrQueryRequest req) throws SolrException { public SolrQueryResponse query(SolrQueryRequest req) throws SolrException {
final long startTime = System.currentTimeMillis(); final long startTime = System.currentTimeMillis();

@ -324,7 +324,7 @@ public abstract class SolrServerConnector extends AbstractSolrConnector implemen
params.setRows(0); params.setRows(0);
params.setStart(0); params.setStart(0);
params.setFacet(false); params.setFacet(false);
params.setFields(YaCySchema.id.getSolrFieldName()); //params.setFields(YaCySchema.id.getSolrFieldName());
// query the server // query the server
QueryResponse rsp = query(params); QueryResponse rsp = query(params);

Loading…
Cancel
Save