add trace logging to ExpressionToDocIdVisitor

This commit is contained in:
ahr
2017-12-20 11:14:41 +01:00
parent 6509391059
commit a6251074cf

View File

@@ -20,8 +20,11 @@ import org.lucares.pdb.datastore.lang.Expression.Parentheses;
import org.lucares.pdb.datastore.lang.Expression.Property;
import org.lucares.pdb.datastore.lang.Expression.Terminal;
import org.lucares.utils.CollectionUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class ExpressionToDocIdVisitor extends ExpressionVisitor<IntList> {
private static final Logger LOGGER = LoggerFactory.getLogger(ExpressionToDocIdVisitor.class);
public static final class AllDocIds {
@@ -62,14 +65,15 @@ public class ExpressionToDocIdVisitor extends ExpressionVisitor<IntList> {
@Override
public IntList visit(final And expression) {
final Expression left = expression.getLeft();
final Expression right = expression.getRight();
final IntList leftFiles = left.visit(this);
final IntList rightFiles = right.visit(this);
final long start = System.nanoTime();
final IntList result = IntList.intersection(leftFiles,rightFiles);
LOGGER.trace("{} took {} ms results={}", expression, (System.nanoTime() - start) / 1_000_000.0, result.size());
assert result.isSorted();
return result;
@@ -82,8 +86,9 @@ public class ExpressionToDocIdVisitor extends ExpressionVisitor<IntList> {
final IntList leftFiles = left.visit(this);
final IntList rightFiles = right.visit(this);
final long start = System.nanoTime();
final IntList result = IntList.union(leftFiles, rightFiles);
LOGGER.trace("{} took {} ms results={}", expression, (System.nanoTime() - start) / 1_000_000.0, result.size());
assert result.isSorted();
return result;
@@ -94,6 +99,7 @@ public class ExpressionToDocIdVisitor extends ExpressionVisitor<IntList> {
final Expression negatedExpression = expression.getExpression();
final IntList expr = negatedExpression.visit(this);
final long start = System.nanoTime();
final IntList allDocIds = getAllDocIds();
final IntList result = new IntList(allDocIds.size());
@@ -105,6 +111,7 @@ public class ExpressionToDocIdVisitor extends ExpressionVisitor<IntList> {
result.add(docId);
}
}
LOGGER.trace("{} took {} ms results={}", expression, (System.nanoTime() - start) / 1_000_000.0, result.size());
return result;
}
@@ -118,8 +125,10 @@ public class ExpressionToDocIdVisitor extends ExpressionVisitor<IntList> {
@Override
public IntList visit(final Expression.MatchAll expression) {
return getAllDocIds();
final long start = System.nanoTime();
IntList result = getAllDocIds();
LOGGER.trace("{} took {} ms results={}", expression, (System.nanoTime() - start) / 1_000_000.0, result.size());
return result;
}
private IntList getAllDocIds() {
@@ -132,7 +141,7 @@ public class ExpressionToDocIdVisitor extends ExpressionVisitor<IntList> {
final String propertyName = expression.property;
final Terminal propertyValue = expression.value;
final String stringValue = propertyValue.getValue();
final long start = System.nanoTime();
final IntList result;
if (isMatchAll(stringValue)) {
@@ -148,6 +157,7 @@ public class ExpressionToDocIdVisitor extends ExpressionVisitor<IntList> {
result = keyToValueToDocId.getOrDefault(propertyName, EMPTY_VALUES).getOrDefault(stringValue,
EMPTY_DOC_IDS);
}
LOGGER.trace("{} took {} ms results={}", expression, (System.nanoTime() - start) / 1_000_000.0, result.size());
return result;
}