Skip to content

Commit 9a70d02

Browse files
committed
add show performance details field to related endpoints
1 parent 30d3d60 commit 9a70d02

7 files changed

Lines changed: 41 additions & 11 deletions

File tree

src/main/java/com/meilisearch/sdk/MultiSearchFederation.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ public class MultiSearchFederation {
1111
private Integer offset;
1212
private MergeFacets mergeFacets;
1313
private Map<String, String[]> facetsByIndex;
14+
private Boolean showPerformanceDetails;
1415

1516
public MultiSearchFederation setLimit(Integer limit) {
1617
this.limit = limit;
@@ -32,6 +33,11 @@ public MultiSearchFederation setFacetsByIndex(Map<String, String[]> facetsByInde
3233
return this;
3334
}
3435

36+
public MultiSearchFederation setShowPerformanceDetails(Boolean showPerformanceDetails) {
37+
this.showPerformanceDetails = showPerformanceDetails;
38+
return this;
39+
}
40+
3541
/**
3642
* Method that returns the JSON String of the MultiSearchFederation
3743
*

src/main/java/com/meilisearch/sdk/SearchRequest.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@ public class SearchRequest {
4646
protected Hybrid hybrid;
4747
protected Double[] vector;
4848
protected Boolean retrieveVectors;
49+
protected Boolean showPerformanceDetails;
4950
/**
5051
* Constructor for SearchRequest for building search queries with the default values: offset: 0,
5152
* limit: 20, attributesToRetrieve: ["*"], attributesToCrop: null, cropLength: 200,
@@ -110,7 +111,8 @@ public String toString() {
110111
.putOpt("locales", this.locales)
111112
.putOpt("distinct", this.distinct)
112113
.putOpt("vector", this.vector)
113-
.putOpt("retrieveVectors", this.retrieveVectors);
114+
.putOpt("retrieveVectors", this.retrieveVectors)
115+
.putOpt("showPerformanceDetails", this.showPerformanceDetails);
114116

115117
if (this.hybrid != null) {
116118
jsonObject.put("hybrid", this.hybrid.toJSONObject());

src/main/java/com/meilisearch/sdk/SimilarDocumentRequest.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ public class SimilarDocumentRequest {
2020
private Boolean showRankingScoreDetails;
2121
private Double rankingScoreThreshold;
2222
private Boolean retrieveVectors;
23+
private Boolean showPerformanceDetails;
2324

2425
/** Constructor for SimilarDocumentsRequest for building search request for similar documents */
2526
public SimilarDocumentRequest() {}
@@ -37,6 +38,7 @@ public String toString() {
3738
jsonObject.putOpt("showRankingScoreDetails", this.showRankingScoreDetails);
3839
jsonObject.putOpt("rankingScoreThreshold", this.rankingScoreThreshold);
3940
jsonObject.putOpt("retrieveVectors", this.retrieveVectors);
41+
jsonObject.putOpt("showPerformanceDetails", this.showPerformanceDetails);
4042

4143
return jsonObject.toString();
4244
}

src/main/java/com/meilisearch/sdk/model/MultiSearchResult.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ public class MultiSearchResult implements Searchable {
2323
int limit;
2424
int estimatedTotalHits;
2525
HashMap<String, FacetsByIndexInfo> facetsByIndex;
26+
HashMap<String, Object> performanceDetails;
2627

2728
public MultiSearchResult() {}
2829
}

src/main/java/com/meilisearch/sdk/model/SearchResult.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ public class SearchResult implements Searchable {
2424
int limit;
2525
int estimatedTotalHits;
2626
HashMap<String, Object> _vectors;
27+
HashMap<String, Object> performanceDetails;
2728

2829
public SearchResult() {}
2930
}

src/main/java/com/meilisearch/sdk/model/SimilarDocumentsResults.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,4 +20,5 @@ public class SimilarDocumentsResults {
2020
int offset;
2121
int limit;
2222
int estimatedTotalHits;
23+
HashMap<String, Object> performanceDetails;
2324
}

src/test/java/com/meilisearch/integration/SearchTest.java

Lines changed: 27 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,7 @@
11
package com.meilisearch.integration;
22

33
import static org.hamcrest.MatcherAssert.assertThat;
4-
import static org.hamcrest.Matchers.arrayWithSize;
5-
import static org.hamcrest.Matchers.equalTo;
6-
import static org.hamcrest.Matchers.greaterThanOrEqualTo;
7-
import static org.hamcrest.Matchers.hasLength;
8-
import static org.hamcrest.Matchers.hasSize;
9-
import static org.hamcrest.Matchers.instanceOf;
10-
import static org.hamcrest.Matchers.is;
11-
import static org.hamcrest.Matchers.not;
12-
import static org.hamcrest.Matchers.nullValue;
4+
import static org.hamcrest.Matchers.*;
135

146
import com.meilisearch.integration.classes.AbstractIT;
157
import com.meilisearch.integration.classes.TestData;
@@ -842,6 +834,7 @@ public void testFederation() throws Exception {
842834

843835
MultiSearchFederation federation = new MultiSearchFederation();
844836
federation.setLimit(2);
837+
federation.setShowPerformanceDetails(true);
845838
MultiSearchResult results = client.multiSearch(search, federation);
846839

847840
assertThat(results.getEstimatedTotalHits(), is(2));
@@ -851,6 +844,7 @@ public void testFederation() throws Exception {
851844
for (HashMap<String, Object> record : hits) {
852845
assertThat(record.containsKey("_federation"), is(true));
853846
}
847+
assertThat(results.getPerformanceDetails(), aMapWithSize(greaterThan(0)));
854848
}
855849

856850
/** Test multisearch with ranking score threshold */
@@ -1106,14 +1100,18 @@ public void testSimilarDocuments() throws Exception {
11061100

11071101
SimilarDocumentsResults results =
11081102
index.searchSimilarDocuments(
1109-
new SimilarDocumentRequest().setId("143").setEmbedder("manual"));
1103+
new SimilarDocumentRequest()
1104+
.setId("143")
1105+
.setEmbedder("manual")
1106+
.setShowPerformanceDetails(true));
11101107

11111108
ArrayList<HashMap<String, Object>> hits = results.getHits();
11121109
assertThat(hits.size(), is(4));
11131110
assertThat(hits.get(0).get("title"), is("Escape Room"));
11141111
assertThat(hits.get(1).get("title"), is("Captain Marvel"));
11151112
assertThat(hits.get(2).get("title"), is("How to Train Your Dragon: The Hidden World"));
11161113
assertThat(hits.get(3).get("title"), is("Shazam!"));
1114+
assertThat(results.getPerformanceDetails(), aMapWithSize(greaterThan(0)));
11171115
}
11181116

11191117
/** Test vector search */
@@ -1307,4 +1305,23 @@ public void testSearchWithRetrieveVectors() throws Exception {
13071305
Map<String, Object> vectors = (Map<String, Object>) hitWith.get("_vectors");
13081306
assertThat(vectors.containsKey("manual"), is(true));
13091307
}
1308+
1309+
@Test
1310+
public void testSearchWithPerformanceDetails() throws Exception {
1311+
String indexUid = "testSearchWithPerformanceDetails";
1312+
Index index = client.index(indexUid);
1313+
1314+
TestData<Movie> testData = this.getTestData(MOVIES_INDEX, Movie.class);
1315+
TaskInfo task = index.addDocuments(testData.getRaw());
1316+
1317+
index.waitForTask(task.getTaskUid());
1318+
1319+
SearchRequest searchRequest =
1320+
SearchRequest.builder().q("a").showPerformanceDetails(true).build();
1321+
SearchResult searchResult = (SearchResult) index.search(searchRequest);
1322+
1323+
assertThat(searchResult.getHits(), hasSize(11));
1324+
assertThat(searchResult.getEstimatedTotalHits(), is(equalTo(31)));
1325+
assertThat(searchResult.getPerformanceDetails(), aMapWithSize(greaterThan(0)));
1326+
}
13101327
}

0 commit comments

Comments
 (0)