diff --git a/marginalia_nu/src/main/java/nu/marginalia/util/dict/DictionaryData.java b/marginalia_nu/src/main/java/nu/marginalia/util/dict/DictionaryData.java index bbb17c51..557ad991 100644 --- a/marginalia_nu/src/main/java/nu/marginalia/util/dict/DictionaryData.java +++ b/marginalia_nu/src/main/java/nu/marginalia/util/dict/DictionaryData.java @@ -12,7 +12,7 @@ public class DictionaryData { private final int DICTIONARY_BANK_SIZE; private static final Logger logger = LoggerFactory.getLogger(DictionaryData.class); - private final ArrayList banks = new ArrayList(100); + private final ArrayList banks = new ArrayList<>(100); public DictionaryData(int bankSize) { DICTIONARY_BANK_SIZE = bankSize; diff --git a/marginalia_nu/src/main/java/nu/marginalia/wmsa/edge/index/EdgeIndexBucket.java b/marginalia_nu/src/main/java/nu/marginalia/wmsa/edge/index/EdgeIndexBucket.java index cde869d7..4e203631 100644 --- a/marginalia_nu/src/main/java/nu/marginalia/wmsa/edge/index/EdgeIndexBucket.java +++ b/marginalia_nu/src/main/java/nu/marginalia/wmsa/edge/index/EdgeIndexBucket.java @@ -136,10 +136,6 @@ public class EdgeIndexBucket { query = query.not(term); } - for (int term : orderedIncludes) { - query.prioritize(term); - } - return query.build(); } diff --git a/marginalia_nu/src/main/java/nu/marginalia/wmsa/edge/index/svc/EdgeIndexQueryService.java b/marginalia_nu/src/main/java/nu/marginalia/wmsa/edge/index/svc/EdgeIndexQueryService.java index 64e22c26..a0908227 100644 --- a/marginalia_nu/src/main/java/nu/marginalia/wmsa/edge/index/svc/EdgeIndexQueryService.java +++ b/marginalia_nu/src/main/java/nu/marginalia/wmsa/edge/index/svc/EdgeIndexQueryService.java @@ -41,7 +41,7 @@ public class EdgeIndexQueryService { private final Logger logger = LoggerFactory.getLogger(getClass()); - private static final int SEARCH_BUDGET_TIMEOUT_MS = 3000; + private static final int SEARCH_BUDGET_TIMEOUT_MS = 250; private static final int QUERY_FETCH_SIZE = 8192; private static final int QUERY_FIRST_PASS_DOMAIN_LIMIT = 64; @@ -301,7 +301,7 @@ public class EdgeIndexQueryService { var word = lookUpWord(include); if (word.isEmpty()) { logger.debug("Unknown search term: " + include); - return new EdgeIndexSearchTerms(includes, excludes); + return new EdgeIndexSearchTerms(Collections.emptyList(), Collections.emptyList()); } includes.add(word.getAsInt()); } diff --git a/marginalia_nu/src/main/java/nu/marginalia/wmsa/edge/index/svc/query/IndexQuery.java b/marginalia_nu/src/main/java/nu/marginalia/wmsa/edge/index/svc/query/IndexQuery.java index fb34ace4..254e4195 100644 --- a/marginalia_nu/src/main/java/nu/marginalia/wmsa/edge/index/svc/query/IndexQuery.java +++ b/marginalia_nu/src/main/java/nu/marginalia/wmsa/edge/index/svc/query/IndexQuery.java @@ -11,7 +11,6 @@ import static java.lang.Math.min; public class IndexQuery { private final List sources; private final List inclusionFilter = new ArrayList<>(10); - private final List priorityFilter = new ArrayList<>(10); public IndexQuery(List sources) { this.sources = sources; @@ -21,10 +20,6 @@ public class IndexQuery { inclusionFilter.add(filter); } - public void addPriorityFilter(QueryFilterStepIf filter) { - priorityFilter.add(filter); - } - private int si = 0; public boolean hasMore() { @@ -50,34 +45,11 @@ public class IndexQuery { } } - if (budget.hasTimeLeft()) { - prioritizeBuffer(dest, source, bufferUtilizedLength, budget); - } - int count = min(bufferUtilizedLength, dest.length); System.arraycopy(dest, 0, dest, 0, count); return count; } - private void prioritizeBuffer(long[] dest, EntrySource source, int remainingBufferSize, IndexSearchBudget budget) { - int prioStart = 0; - - for (var filter : priorityFilter) { - if (!budget.hasTimeLeft()) - break; - - if (filter.getIndex() == source.getIndex()) - continue; - - prioStart += filter.retainReorder(dest, prioStart, remainingBufferSize); - - if (prioStart >= remainingBufferSize) { - break; - } - } - - } - public String toString() { StringBuilder sb = new StringBuilder(); sb.append("Sources:\n"); diff --git a/marginalia_nu/src/main/java/nu/marginalia/wmsa/edge/index/svc/query/IndexQueryFactory.java b/marginalia_nu/src/main/java/nu/marginalia/wmsa/edge/index/svc/query/IndexQueryFactory.java index 9de08040..684b8217 100644 --- a/marginalia_nu/src/main/java/nu/marginalia/wmsa/edge/index/svc/query/IndexQueryFactory.java +++ b/marginalia_nu/src/main/java/nu/marginalia/wmsa/edge/index/svc/query/IndexQueryFactory.java @@ -84,15 +84,6 @@ public class IndexQueryFactory { return this; } - public void prioritize(int termId) { - for (var idx : priortyIndices) { - var range = idx.rangeForWord(cachePool, termId); - if (range.isPresent()) { - query.addPriorityFilter(new QueryFilterBTreeRange(idx, range, cachePool)); - } - } - } - public IndexQuery build() { return query; } diff --git a/marginalia_nu/src/main/java/nu/marginalia/wmsa/edge/search/results/SearchResultDecorator.java b/marginalia_nu/src/main/java/nu/marginalia/wmsa/edge/search/results/SearchResultDecorator.java index 26520f8c..80ec69b7 100644 --- a/marginalia_nu/src/main/java/nu/marginalia/wmsa/edge/search/results/SearchResultDecorator.java +++ b/marginalia_nu/src/main/java/nu/marginalia/wmsa/edge/search/results/SearchResultDecorator.java @@ -20,6 +20,8 @@ public class SearchResultDecorator { private final SearchResultValuator valuator; private final Logger logger = LoggerFactory.getLogger(getClass()); + private final boolean dumpTermData = Boolean.getBoolean("search-dump-term-data"); + @Inject public SearchResultDecorator(EdgeDataStoreDao edgeDataStoreDao, SearchResultValuator valuator) { this.edgeDataStoreDao = edgeDataStoreDao; @@ -76,15 +78,16 @@ public class SearchResultDecorator { final double value = valuator.evaluateTerms(resultItem.scores, details.words, details.title.length()); -// System.out.println("---"); -// System.out.println(details.getUrl()); -// System.out.println(details.getTitle()); -// System.out.println(details.words); -// for (var score : resultItem.scores) { -// System.out.println(score); -// } -// System.out.println(value); - + if (dumpTermData) { + System.out.println("---"); + System.out.println(details.getUrl()); + System.out.println(details.getTitle()); + System.out.println(details.words); + for (var score : resultItem.scores) { + System.out.println(score); + } + System.out.println(value); + } return value + statePenalty; }