From 935234939cf083c97eea78c8bb1740e24eb5e1f3 Mon Sep 17 00:00:00 2001 From: Viktor Lofgren Date: Thu, 27 Jun 2024 13:15:20 +0200 Subject: [PATCH] (test) Add query parsing to IntegrationTest --- code/tools/integration-test/build.gradle | 1 + .../test/nu/marginalia/IntegrationTest.java | 51 ++++++++++--------- .../{ => test}/IntegrationTestModule.java | 6 ++- .../nu/marginalia/{ => test}/TestUtil.java | 2 +- 4 files changed, 33 insertions(+), 27 deletions(-) rename code/tools/integration-test/test/nu/marginalia/{ => test}/IntegrationTestModule.java (97%) rename code/tools/integration-test/test/nu/marginalia/{ => test}/TestUtil.java (98%) diff --git a/code/tools/integration-test/build.gradle b/code/tools/integration-test/build.gradle index 818ca6af..f4623a45 100644 --- a/code/tools/integration-test/build.gradle +++ b/code/tools/integration-test/build.gradle @@ -27,6 +27,7 @@ dependencies { implementation project(':code:index:query') implementation project(':code:index:index-journal') implementation project(':code:functions:link-graph:partition') + implementation project(':code:functions:search-query') implementation project(':code:libraries:array') implementation project(':code:common:db') implementation project(':code:common:config') diff --git a/code/tools/integration-test/test/nu/marginalia/IntegrationTest.java b/code/tools/integration-test/test/nu/marginalia/IntegrationTest.java index 074a0264..6f829bc0 100644 --- a/code/tools/integration-test/test/nu/marginalia/IntegrationTest.java +++ b/code/tools/integration-test/test/nu/marginalia/IntegrationTest.java @@ -2,9 +2,9 @@ package nu.marginalia; import com.google.inject.Guice; import com.google.inject.Inject; -import nu.marginalia.api.searchquery.model.query.SearchCoherenceConstraint; -import nu.marginalia.api.searchquery.model.query.SearchQuery; -import nu.marginalia.api.searchquery.model.query.SearchSpecification; +import nu.marginalia.api.searchquery.QueryProtobufCodec; +import nu.marginalia.api.searchquery.RpcQsQuery; +import nu.marginalia.api.searchquery.RpcQueryLimits; import nu.marginalia.api.searchquery.model.results.ResultRankingParameters; import nu.marginalia.converting.processor.DomainProcessor; import nu.marginalia.converting.writer.ConverterBatchWriter; @@ -13,6 +13,7 @@ import nu.marginalia.crawl.retreival.fetcher.ContentTags; import nu.marginalia.crawl.retreival.fetcher.warc.WarcRecorder; import nu.marginalia.crawling.io.CrawledDomainReader; import nu.marginalia.crawling.parquet.CrawledDocumentParquetRecordFileWriter; +import nu.marginalia.functions.searchquery.QueryFactory; import nu.marginalia.index.IndexGrpcService; import nu.marginalia.index.ReverseIndexFullFileNames; import nu.marginalia.index.ReverseIndexPrioFileNames; @@ -22,10 +23,7 @@ import nu.marginalia.index.forward.ForwardIndexConverter; import nu.marginalia.index.forward.ForwardIndexFileNames; import nu.marginalia.index.index.StatefulIndex; import nu.marginalia.index.journal.reader.IndexJournalReader; -import nu.marginalia.index.query.limit.QueryStrategy; import nu.marginalia.index.model.SearchParameters; -import nu.marginalia.index.query.limit.QueryLimits; -import nu.marginalia.index.query.limit.SpecificationLimit; import nu.marginalia.index.searchset.SearchSetAny; import nu.marginalia.linkdb.docs.DocumentDbReader; import nu.marginalia.linkdb.docs.DocumentDbWriter; @@ -43,6 +41,8 @@ import nu.marginalia.model.idx.WordMetadata; import nu.marginalia.process.control.FakeProcessHeartbeat; import nu.marginalia.storage.FileStorageService; import nu.marginalia.storage.model.FileStorageBaseType; +import nu.marginalia.test.IntegrationTestModule; +import nu.marginalia.test.TestUtil; import org.junit.jupiter.api.*; import org.mockito.Mockito; @@ -93,6 +93,9 @@ public class IntegrationTest { @Inject DocumentDbReader documentDbReader; + @Inject + QueryFactory queryFactory; + @BeforeEach public void setupTest() throws IOException { testModule = new IntegrationTestModule(); @@ -203,26 +206,24 @@ public class IntegrationTest { documentDbReader.reconnect(); /** QUERY */ - var rs = indexGrpcService.executeSearch(new SearchParameters(new SearchSpecification( - new SearchQuery("problem solving process", - List.of("problem", "solving", "process"), - List.of(), - List.of(), - List.of(), - List.of(new SearchCoherenceConstraint(true, List.of("problem", "solving", "process"))) - ), - null, - "NONE", - "feynman", - SpecificationLimit.none(), - SpecificationLimit.none(), - SpecificationLimit.none(), - SpecificationLimit.none(), - new QueryLimits(10, 10, 100, 100), - QueryStrategy.AUTO, - ResultRankingParameters.sensibleDefaults() - ), new SearchSetAny())); + var request = RpcQsQuery.newBuilder() + .setQueryLimits(RpcQueryLimits.newBuilder() + .setTimeoutMs(1000) + .setResultsTotal(100) + .setResultsByDomain(10) + .setFetchSize(1000) + .build()) + .setQueryStrategy("AUTO") + .setHumanQuery("problem solving process") + .build(); + + var params = QueryProtobufCodec.convertRequest(request); + + var query = queryFactory.createQuery(params, ResultRankingParameters.sensibleDefaults()); + + var indexRequest = QueryProtobufCodec.convertQuery(request, query); + var rs = indexGrpcService.executeSearch(new SearchParameters(indexRequest, new SearchSetAny())); System.out.println(rs); } diff --git a/code/tools/integration-test/test/nu/marginalia/IntegrationTestModule.java b/code/tools/integration-test/test/nu/marginalia/test/IntegrationTestModule.java similarity index 97% rename from code/tools/integration-test/test/nu/marginalia/IntegrationTestModule.java rename to code/tools/integration-test/test/nu/marginalia/test/IntegrationTestModule.java index 71610e24..69b94ee8 100644 --- a/code/tools/integration-test/test/nu/marginalia/IntegrationTestModule.java +++ b/code/tools/integration-test/test/nu/marginalia/test/IntegrationTestModule.java @@ -1,4 +1,4 @@ -package nu.marginalia; +package nu.marginalia.test; import com.google.inject.AbstractModule; import com.google.inject.Inject; @@ -6,6 +6,10 @@ import com.google.inject.Provides; import com.google.inject.Singleton; import com.google.inject.name.Names; import gnu.trove.list.array.TIntArrayList; +import nu.marginalia.IndexLocations; +import nu.marginalia.LanguageModels; +import nu.marginalia.ProcessConfiguration; +import nu.marginalia.WmsaHome; import nu.marginalia.db.DomainTypes; import nu.marginalia.index.domainrankings.DomainRankings; import nu.marginalia.index.journal.writer.IndexJournalWriter; diff --git a/code/tools/integration-test/test/nu/marginalia/TestUtil.java b/code/tools/integration-test/test/nu/marginalia/test/TestUtil.java similarity index 98% rename from code/tools/integration-test/test/nu/marginalia/TestUtil.java rename to code/tools/integration-test/test/nu/marginalia/test/TestUtil.java index 0b9ce74f..43332601 100644 --- a/code/tools/integration-test/test/nu/marginalia/TestUtil.java +++ b/code/tools/integration-test/test/nu/marginalia/test/TestUtil.java @@ -1,4 +1,4 @@ -package nu.marginalia; +package nu.marginalia.test; import java.io.File;