(test) Add query parsing to IntegrationTest

This commit is contained in:
Viktor Lofgren 2024-06-27 13:15:20 +02:00
parent 87e38e6181
commit 935234939c
4 changed files with 33 additions and 27 deletions

View File

@ -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')

View File

@ -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);
}

View File

@ -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;

View File

@ -1,4 +1,4 @@
package nu.marginalia;
package nu.marginalia.test;
import java.io.File;