introduce clustering for query completion indices

This commit is contained in:
2019-03-16 10:19:28 +01:00
parent fb9f8592ac
commit b5e2d0a217
14 changed files with 197 additions and 136 deletions

View File

@@ -15,8 +15,13 @@ public class DateTimeRange {
this.end = end;
}
public static DateTimeRange now() {
return relativeMillis(0);
}
public static DateTimeRange relative(final long amount, final TemporalUnit unit) {
return new DateTimeRange(OffsetDateTime.now().minus(amount, unit), OffsetDateTime.now());
final OffsetDateTime now = OffsetDateTime.now();
return new DateTimeRange(now.minus(amount, unit), now);
}
public static DateTimeRange relativeMillis(final long amount) {

View File

@@ -0,0 +1,5 @@
package org.lucares.pdb.api;
public interface QueryConstants {
String CARET_MARKER = "\ue001"; // character in the private use area
}

View File

@@ -0,0 +1,18 @@
package org.lucares.pdb.api;
public class QueryWithCaretMarker extends Query implements QueryConstants {
private final int caretIndex;
public QueryWithCaretMarker(final String query, final DateTimeRange dateRange, final int caretIndex) {
super(query, dateRange);
this.caretIndex = caretIndex;
}
public String getQueryWithCaretMarker() {
final StringBuilder queryBuilder = new StringBuilder(getQuery());
final StringBuilder queryWithCaretMarker = queryBuilder.insert(caretIndex, CARET_MARKER);
return queryWithCaretMarker.toString();
}
}