Skip to content

Commit 08b5a85

Browse files
committed
Added: customSearchParameters
1 parent 147705a commit 08b5a85

2 files changed

Lines changed: 38 additions & 4 deletions

File tree

algoliasearch-core/src/main/java/com/algolia/search/models/indexing/SearchParameters.java

Lines changed: 23 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,11 @@
55
import com.algolia.search.models.settings.RemoveStopWords;
66
import com.algolia.search.models.settings.TypoTolerance;
77
import com.algolia.search.util.QueryStringUtils;
8-
import com.fasterxml.jackson.annotation.JsonIgnore;
9-
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
10-
import com.fasterxml.jackson.annotation.JsonInclude;
11-
import com.fasterxml.jackson.annotation.JsonProperty;
8+
import com.fasterxml.jackson.annotation.*;
129
import java.io.Serializable;
10+
import java.util.HashMap;
1311
import java.util.List;
12+
import java.util.Map;
1413

1514
@JsonInclude(JsonInclude.Include.NON_NULL)
1615
@JsonIgnoreProperties(ignoreUnknown = true)
@@ -614,6 +613,23 @@ public T setSumOrFiltersScores(Boolean sumOrFiltersScores) {
614613
return getThis();
615614
}
616615

616+
@JsonAnyGetter
617+
public Map<String, Object> getCustomParameters() {
618+
return customParameters;
619+
}
620+
621+
@JsonAnySetter
622+
public T setCustomParameters(Map<String, Object> customSettings) {
623+
this.customParameters = customSettings;
624+
return getThis();
625+
}
626+
627+
@JsonAnySetter
628+
public T setCustomParameter(String key, Object value) {
629+
this.customParameters.put(key, value);
630+
return getThis();
631+
}
632+
617633
public String toParam() {
618634
return QueryStringUtils.buildQueryAsQueryParams(this);
619635
}
@@ -715,4 +731,7 @@ public String toParam() {
715731
/* Personalization */
716732
protected Boolean enablePersonalization;
717733
protected Integer personalizationImpact;
734+
735+
/* Custom Parameters */
736+
protected Map<String, Object> customParameters = new HashMap<>();
718737
}

algoliasearch-core/src/test/java/com/algolia/search/JacksonParserTest.java

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -351,6 +351,21 @@ void queryWithAroundRadius() throws JsonProcessingException {
351351
assertThat(serialized).isEqualTo("{\"aroundRadius\":1,\"query\":\"\"}");
352352
}
353353

354+
@Test
355+
void queryWithCustomParameters() throws JsonProcessingException {
356+
Query query = new Query("algolia").setCustomParameter("newParameter", 10);
357+
String serialized = Defaults.getObjectMapper().writeValueAsString(query);
358+
assertThat(serialized).isEqualTo("{\"query\":\"algolia\",\"newParameter\":10}");
359+
}
360+
361+
@Test
362+
void settingsWithCustomSettings() throws JsonProcessingException {
363+
IndexSettings settings =
364+
new IndexSettings().setEnableRules(true).setCustomSetting("newSettings", true);
365+
String serialized = Defaults.getObjectMapper().writeValueAsString(settings);
366+
assertThat(serialized).isEqualTo("{\"enableRules\":true,\"newSettings\":true}");
367+
}
368+
354369
private IndexSettings serializeDeserialize(IndexSettings obj) throws IOException {
355370
String serialized = Defaults.getObjectMapper().writeValueAsString(obj);
356371
return Defaults.getObjectMapper()

0 commit comments

Comments
 (0)