Skip to content

Commit 666bbcf

Browse files
authored
Merge pull request #118 from o19s/117-query-filtering
Adds application and timestamp query selection
2 parents 268dc6c + a9baa1b commit 666bbcf

18 files changed

+411
-199
lines changed

scripts/create-query-set.json

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
{
2-
"sampler": "pptss",
2+
"sampler": "random",
33
"name": "",
44
"description": "",
5-
"querySetSize": 15
5+
"querySetSize": 250,
6+
"application": "app1",
7+
"startTimestamp": "2023-12-10T06:33:30.100Z",
8+
"endTimestamp": ""
69
}

scripts/run-query-set.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"query_set_id": "29401b21-fee2-4b30-bb02-406f79649f89",
3-
"judgments_id": "c9d80d76-aa19-4e48-8ba5-91ca710b98d2",
3+
"judgments_id": "715c3cb3-e347-4d0b-8903-a73e1db7a344",
44
"index": "ecommerce",
55
"search_pipeline": "",
66
"id_field": "asin",

src/main/java/org/opensearch/eval/App.java

Lines changed: 20 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -24,11 +24,10 @@
2424
import org.opensearch.eval.judgments.clickmodel.JudgmentParameters;
2525
import org.opensearch.eval.judgments.clickmodel.coec.CoecClickModel;
2626
import org.opensearch.eval.judgments.clickmodel.coec.CoecClickModelParameters;
27+
import org.opensearch.eval.model.TimeFilter;
28+
import org.opensearch.eval.model.dao.querysets.QuerySetRunParameters;
2729
import org.opensearch.eval.runners.OpenSearchQuerySetRunner;
2830
import org.opensearch.eval.runners.QuerySetRunResult;
29-
import org.opensearch.eval.model.dao.querysets.QuerySetRunParameters;
30-
import org.opensearch.eval.samplers.AllQueriesQuerySampler;
31-
import org.opensearch.eval.samplers.AllQueriesQuerySamplerParameters;
3231
import org.opensearch.eval.samplers.ProbabilityProportionalToSizeQuerySampler;
3332
import org.opensearch.eval.samplers.ProbabilityProportionalToSizeSamplerParameters;
3433
import org.opensearch.eval.samplers.RandomQuerySampler;
@@ -77,7 +76,7 @@ public static void main(String[] args) throws Exception {
7776
if(cmd.hasOption("o")) {
7877
uri = URI.create(cmd.getOptionValue("o"));
7978
} else {
80-
System.out.println("No OpenSearch host given so defaulting to http://localhost:9200");
79+
LOGGER.info("No OpenSearch host given so defaulting to http://localhost:9200");
8180
uri = URI.create("http://localhost:9200");
8281
}
8382

@@ -150,56 +149,46 @@ public static void main(String[] args) throws Exception {
150149
final String samplerType = jsonObject.get("sampler").getAsString();
151150
String querySetId = null;
152151

153-
if(AllQueriesQuerySampler.NAME.equalsIgnoreCase(samplerType)) {
154-
155-
final AllQueriesQuerySamplerParameters parameters = gson.fromJson(jsonString, AllQueriesQuerySamplerParameters.class);
156-
final AllQueriesQuerySampler sampler = new AllQueriesQuerySampler(searchEngine, parameters);
157-
158-
// TODO: Allow for selecting the queries by date.
159-
final Map<String, Long> querySet = sampler.sample();
160-
if(!querySet.isEmpty()) {
161-
querySetId = sampler.indexQuerySet(searchEngine, parameters.getName(), parameters.getDescription(), parameters.getSampling(), querySet);
162-
} else {
163-
System.err.println("The query set was empty.");
164-
}
165-
166-
} else if(ProbabilityProportionalToSizeQuerySampler.NAME.equalsIgnoreCase(samplerType)) {
152+
if(ProbabilityProportionalToSizeQuerySampler.NAME.equalsIgnoreCase(samplerType)) {
167153

168154
final ProbabilityProportionalToSizeSamplerParameters parameters = gson.fromJson(jsonString, ProbabilityProportionalToSizeSamplerParameters.class);
169155
final ProbabilityProportionalToSizeQuerySampler sampler = new ProbabilityProportionalToSizeQuerySampler(searchEngine, parameters);
170156

171-
// TODO: Allow for selecting the queries by date.
172-
final Map<String, Long> querySet = sampler.sample();
157+
final TimeFilter timeFilter = TimeFilter.fromQuerySamplerParameters(parameters);
158+
final Map<String, Long> querySet = sampler.sample(timeFilter);
159+
173160
if(!querySet.isEmpty()) {
174161
querySetId = sampler.indexQuerySet(searchEngine, parameters.getName(), parameters.getDescription(), parameters.getSampling(), querySet);
175162
} else {
176-
System.err.println("The query set was empty.");
163+
LOGGER.error("The query set was empty.");
177164
}
178165

179166
} else if(RandomQuerySampler.NAME.equalsIgnoreCase(samplerType)) {
180167

181168
final RandomQuerySamplerParameters parameters = gson.fromJson(jsonString, RandomQuerySamplerParameters.class);
182169
final RandomQuerySampler sampler = new RandomQuerySampler(searchEngine, parameters);
183170

184-
// TODO: Allow for selecting the queries by date.
185-
final Map<String, Long> querySet = sampler.sample();
171+
final TimeFilter timeFilter = TimeFilter.fromQuerySamplerParameters(parameters);
172+
final Map<String, Long> querySet = sampler.sample(timeFilter);
173+
186174
if(!querySet.isEmpty()) {
187175
querySetId = sampler.indexQuerySet(searchEngine, parameters.getName(), parameters.getDescription(), parameters.getSampling(), querySet);
188176
} else {
189-
System.err.println("The query set was empty.");
177+
LOGGER.error("The query set was empty.");
190178
}
191179

192180
} else if(TopNQuerySampler.NAME.equalsIgnoreCase(samplerType)) {
193181

194182
final TopNQuerySamplerParameters parameters = gson.fromJson(jsonString, TopNQuerySamplerParameters.class);
195183
final TopNQuerySampler sampler = new TopNQuerySampler(searchEngine, parameters);
196184

197-
// TODO: Allow for selecting the queries by date.
198-
final Map<String, Long> querySet = sampler.sample();
185+
final TimeFilter timeFilter = TimeFilter.fromQuerySamplerParameters(parameters);
186+
final Map<String, Long> querySet = sampler.sample(timeFilter);
187+
199188
if(!querySet.isEmpty()) {
200189
querySetId = sampler.indexQuerySet(searchEngine, parameters.getName(), parameters.getDescription(), parameters.getSampling(), querySet);
201190
} else {
202-
System.err.println("The query set was empty.");
191+
LOGGER.error("The query set was empty.");
203192
}
204193

205194
} else {
@@ -210,19 +199,19 @@ public static void main(String[] args) throws Exception {
210199
}
211200

212201
if (querySetId != null) {
213-
System.out.println("Query set created: " + querySetId);
202+
LOGGER.info("Query set created: {}", querySetId);
214203
} else {
215-
System.err.println("No queries found for query set.");
204+
LOGGER.warn("No queries found for query set.");
216205
}
217206

218207
} else {
219-
System.err.println("The query set run parameters file does not exist.");
208+
LOGGER.error("The query set run parameters file does not exist.");
220209
}
221210

222211

223212
} else {
224213

225-
System.err.println("Invalid options.");
214+
LOGGER.error("Invalid options.");
226215

227216
}
228217

0 commit comments

Comments
 (0)