com.algolia.model.search.BaseSearchParams Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of algoliasearch Show documentation
Show all versions of algoliasearch Show documentation
Java client for Algolia Search API
// Code generated by OpenAPI Generator (https://openapi-generator.tech), manual changes will be lost
// - read more on https://github.com/algolia/api-clients-automation. DO NOT EDIT.
package com.algolia.model.search;
import com.fasterxml.jackson.annotation.*;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
/** BaseSearchParams */
public class BaseSearchParams {
@JsonProperty("query")
private String query;
@JsonProperty("similarQuery")
private String similarQuery;
@JsonProperty("filters")
private String filters;
@JsonProperty("facetFilters")
private FacetFilters facetFilters;
@JsonProperty("optionalFilters")
private OptionalFilters optionalFilters;
@JsonProperty("numericFilters")
private NumericFilters numericFilters;
@JsonProperty("tagFilters")
private TagFilters tagFilters;
@JsonProperty("sumOrFiltersScores")
private Boolean sumOrFiltersScores;
@JsonProperty("restrictSearchableAttributes")
private List restrictSearchableAttributes;
@JsonProperty("facets")
private List facets;
@JsonProperty("facetingAfterDistinct")
private Boolean facetingAfterDistinct;
@JsonProperty("page")
private Integer page;
@JsonProperty("offset")
private Integer offset;
@JsonProperty("length")
private Integer length;
@JsonProperty("aroundLatLng")
private String aroundLatLng;
@JsonProperty("aroundLatLngViaIP")
private Boolean aroundLatLngViaIP;
@JsonProperty("aroundRadius")
private AroundRadius aroundRadius;
@JsonProperty("aroundPrecision")
private AroundPrecision aroundPrecision;
@JsonProperty("minimumAroundRadius")
private Integer minimumAroundRadius;
@JsonProperty("insideBoundingBox")
private List insideBoundingBox;
@JsonProperty("insidePolygon")
private List insidePolygon;
@JsonProperty("naturalLanguages")
private List naturalLanguages;
@JsonProperty("ruleContexts")
private List ruleContexts;
@JsonProperty("personalizationImpact")
private Integer personalizationImpact;
@JsonProperty("userToken")
private String userToken;
@JsonProperty("getRankingInfo")
private Boolean getRankingInfo;
@JsonProperty("explain")
private List explain;
@JsonProperty("synonyms")
private Boolean synonyms;
@JsonProperty("clickAnalytics")
private Boolean clickAnalytics;
@JsonProperty("analytics")
private Boolean analytics;
@JsonProperty("analyticsTags")
private List analyticsTags;
@JsonProperty("percentileComputation")
private Boolean percentileComputation;
@JsonProperty("enableABTest")
private Boolean enableABTest;
public BaseSearchParams setQuery(String query) {
this.query = query;
return this;
}
/** Text to search for in an index. */
@javax.annotation.Nullable
public String getQuery() {
return query;
}
public BaseSearchParams setSimilarQuery(String similarQuery) {
this.similarQuery = similarQuery;
return this;
}
/** Overrides the query parameter and performs a more generic search. */
@javax.annotation.Nullable
public String getSimilarQuery() {
return similarQuery;
}
public BaseSearchParams setFilters(String filters) {
this.filters = filters;
return this;
}
/**
* [Filter](https://www.algolia.com/doc/guides/managing-results/refine-results/filtering/) the
* query with numeric, facet, or tag filters.
*/
@javax.annotation.Nullable
public String getFilters() {
return filters;
}
public BaseSearchParams setFacetFilters(FacetFilters facetFilters) {
this.facetFilters = facetFilters;
return this;
}
/** Get facetFilters */
@javax.annotation.Nullable
public FacetFilters getFacetFilters() {
return facetFilters;
}
public BaseSearchParams setOptionalFilters(OptionalFilters optionalFilters) {
this.optionalFilters = optionalFilters;
return this;
}
/** Get optionalFilters */
@javax.annotation.Nullable
public OptionalFilters getOptionalFilters() {
return optionalFilters;
}
public BaseSearchParams setNumericFilters(NumericFilters numericFilters) {
this.numericFilters = numericFilters;
return this;
}
/** Get numericFilters */
@javax.annotation.Nullable
public NumericFilters getNumericFilters() {
return numericFilters;
}
public BaseSearchParams setTagFilters(TagFilters tagFilters) {
this.tagFilters = tagFilters;
return this;
}
/** Get tagFilters */
@javax.annotation.Nullable
public TagFilters getTagFilters() {
return tagFilters;
}
public BaseSearchParams setSumOrFiltersScores(Boolean sumOrFiltersScores) {
this.sumOrFiltersScores = sumOrFiltersScores;
return this;
}
/**
* Determines how to calculate [filter
* scores](https://www.algolia.com/doc/guides/managing-results/refine-results/filtering/in-depth/filter-scoring/#accumulating-scores-with-sumorfiltersscores).
* If `false`, maximum score is kept. If `true`, score is summed.
*/
@javax.annotation.Nullable
public Boolean getSumOrFiltersScores() {
return sumOrFiltersScores;
}
public BaseSearchParams setRestrictSearchableAttributes(List restrictSearchableAttributes) {
this.restrictSearchableAttributes = restrictSearchableAttributes;
return this;
}
public BaseSearchParams addRestrictSearchableAttributes(String restrictSearchableAttributesItem) {
if (this.restrictSearchableAttributes == null) {
this.restrictSearchableAttributes = new ArrayList<>();
}
this.restrictSearchableAttributes.add(restrictSearchableAttributesItem);
return this;
}
/**
* Restricts a query to only look at a subset of your [searchable
* attributes](https://www.algolia.com/doc/guides/managing-results/must-do/searchable-attributes/).
*/
@javax.annotation.Nullable
public List getRestrictSearchableAttributes() {
return restrictSearchableAttributes;
}
public BaseSearchParams setFacets(List facets) {
this.facets = facets;
return this;
}
public BaseSearchParams addFacets(String facetsItem) {
if (this.facets == null) {
this.facets = new ArrayList<>();
}
this.facets.add(facetsItem);
return this;
}
/**
* Returns
* [facets](https://www.algolia.com/doc/guides/managing-results/refine-results/faceting/#contextual-facet-values-and-counts),
* their facet values, and the number of matching facet values.
*/
@javax.annotation.Nullable
public List getFacets() {
return facets;
}
public BaseSearchParams setFacetingAfterDistinct(Boolean facetingAfterDistinct) {
this.facetingAfterDistinct = facetingAfterDistinct;
return this;
}
/**
* Forces faceting to be applied after
* [de-duplication](https://www.algolia.com/doc/guides/managing-results/refine-results/grouping/)
* (with the distinct feature). Alternatively, the `afterDistinct`
* [modifier](https://www.algolia.com/doc/api-reference/api-parameters/attributesForFaceting/#modifiers)
* of `attributesForFaceting` allows for more granular control.
*/
@javax.annotation.Nullable
public Boolean getFacetingAfterDistinct() {
return facetingAfterDistinct;
}
public BaseSearchParams setPage(Integer page) {
this.page = page;
return this;
}
/** Page to retrieve (the first page is `0`, not `1`). */
@javax.annotation.Nullable
public Integer getPage() {
return page;
}
public BaseSearchParams setOffset(Integer offset) {
this.offset = offset;
return this;
}
/**
* Specifies the offset of the first hit to return. > **Note**: Using `page` and `hitsPerPage` is
* the recommended method for [paging
* results](https://www.algolia.com/doc/guides/building-search-ui/ui-and-ux-patterns/pagination/js/).
* However, you can use `offset` and `length` to implement [an alternative approach to
* paging](https://www.algolia.com/doc/guides/building-search-ui/ui-and-ux-patterns/pagination/js/#retrieving-a-subset-of-records-with-offset-and-length).
*/
@javax.annotation.Nullable
public Integer getOffset() {
return offset;
}
public BaseSearchParams setLength(Integer length) {
this.length = length;
return this;
}
/**
* Sets the number of hits to retrieve (for use with `offset`). > **Note**: Using `page` and
* `hitsPerPage` is the recommended method for [paging
* results](https://www.algolia.com/doc/guides/building-search-ui/ui-and-ux-patterns/pagination/js/).
* However, you can use `offset` and `length` to implement [an alternative approach to
* paging](https://www.algolia.com/doc/guides/building-search-ui/ui-and-ux-patterns/pagination/js/#retrieving-a-subset-of-records-with-offset-and-length).
* minimum: 1 maximum: 1000
*/
@javax.annotation.Nullable
public Integer getLength() {
return length;
}
public BaseSearchParams setAroundLatLng(String aroundLatLng) {
this.aroundLatLng = aroundLatLng;
return this;
}
/**
* Search for entries [around a central
* location](https://www.algolia.com/doc/guides/managing-results/refine-results/geolocation/#filter-around-a-central-point),
* enabling a geographical search within a circular area.
*/
@javax.annotation.Nullable
public String getAroundLatLng() {
return aroundLatLng;
}
public BaseSearchParams setAroundLatLngViaIP(Boolean aroundLatLngViaIP) {
this.aroundLatLngViaIP = aroundLatLngViaIP;
return this;
}
/**
* Search for entries around a location. The location is automatically computed from the
* requester's IP address.
*/
@javax.annotation.Nullable
public Boolean getAroundLatLngViaIP() {
return aroundLatLngViaIP;
}
public BaseSearchParams setAroundRadius(AroundRadius aroundRadius) {
this.aroundRadius = aroundRadius;
return this;
}
/** Get aroundRadius */
@javax.annotation.Nullable
public AroundRadius getAroundRadius() {
return aroundRadius;
}
public BaseSearchParams setAroundPrecision(AroundPrecision aroundPrecision) {
this.aroundPrecision = aroundPrecision;
return this;
}
/** Get aroundPrecision */
@javax.annotation.Nullable
public AroundPrecision getAroundPrecision() {
return aroundPrecision;
}
public BaseSearchParams setMinimumAroundRadius(Integer minimumAroundRadius) {
this.minimumAroundRadius = minimumAroundRadius;
return this;
}
/**
* Minimum radius (in meters) used for a geographical search when `aroundRadius` isn't set.
* minimum: 1
*/
@javax.annotation.Nullable
public Integer getMinimumAroundRadius() {
return minimumAroundRadius;
}
public BaseSearchParams setInsideBoundingBox(List insideBoundingBox) {
this.insideBoundingBox = insideBoundingBox;
return this;
}
public BaseSearchParams addInsideBoundingBox(Double insideBoundingBoxItem) {
if (this.insideBoundingBox == null) {
this.insideBoundingBox = new ArrayList<>();
}
this.insideBoundingBox.add(insideBoundingBoxItem);
return this;
}
/**
* Search inside a [rectangular
* area](https://www.algolia.com/doc/guides/managing-results/refine-results/geolocation/#filtering-inside-rectangular-or-polygonal-areas)
* (in geographical coordinates).
*/
@javax.annotation.Nullable
public List getInsideBoundingBox() {
return insideBoundingBox;
}
public BaseSearchParams setInsidePolygon(List insidePolygon) {
this.insidePolygon = insidePolygon;
return this;
}
public BaseSearchParams addInsidePolygon(Double insidePolygonItem) {
if (this.insidePolygon == null) {
this.insidePolygon = new ArrayList<>();
}
this.insidePolygon.add(insidePolygonItem);
return this;
}
/**
* Search inside a
* [polygon](https://www.algolia.com/doc/guides/managing-results/refine-results/geolocation/#filtering-inside-rectangular-or-polygonal-areas)
* (in geographical coordinates).
*/
@javax.annotation.Nullable
public List getInsidePolygon() {
return insidePolygon;
}
public BaseSearchParams setNaturalLanguages(List naturalLanguages) {
this.naturalLanguages = naturalLanguages;
return this;
}
public BaseSearchParams addNaturalLanguages(String naturalLanguagesItem) {
if (this.naturalLanguages == null) {
this.naturalLanguages = new ArrayList<>();
}
this.naturalLanguages.add(naturalLanguagesItem);
return this;
}
/**
* Changes the default values of parameters that work best for a natural language query, such as
* `ignorePlurals`, `removeStopWords`, `removeWordsIfNoResults`, `analyticsTags`, and
* `ruleContexts`. These parameters work well together when the query consists of fuller natural
* language strings instead of keywords, for example when processing voice search queries.
*/
@javax.annotation.Nullable
public List getNaturalLanguages() {
return naturalLanguages;
}
public BaseSearchParams setRuleContexts(List ruleContexts) {
this.ruleContexts = ruleContexts;
return this;
}
public BaseSearchParams addRuleContexts(String ruleContextsItem) {
if (this.ruleContexts == null) {
this.ruleContexts = new ArrayList<>();
}
this.ruleContexts.add(ruleContextsItem);
return this;
}
/**
* Assigns [rule
* contexts](https://www.algolia.com/doc/guides/managing-results/rules/rules-overview/how-to/customize-search-results-by-platform/#whats-a-context)
* to search queries.
*/
@javax.annotation.Nullable
public List getRuleContexts() {
return ruleContexts;
}
public BaseSearchParams setPersonalizationImpact(Integer personalizationImpact) {
this.personalizationImpact = personalizationImpact;
return this;
}
/**
* Defines how much [Personalization affects
* results](https://www.algolia.com/doc/guides/personalization/personalizing-results/in-depth/configuring-personalization/#understanding-personalization-impact).
*/
@javax.annotation.Nullable
public Integer getPersonalizationImpact() {
return personalizationImpact;
}
public BaseSearchParams setUserToken(String userToken) {
this.userToken = userToken;
return this;
}
/**
* Associates a [user
* token](https://www.algolia.com/doc/guides/sending-events/concepts/usertoken/) with the current
* search.
*/
@javax.annotation.Nullable
public String getUserToken() {
return userToken;
}
public BaseSearchParams setGetRankingInfo(Boolean getRankingInfo) {
this.getRankingInfo = getRankingInfo;
return this;
}
/**
* Incidates whether the search response includes [detailed ranking
* information](https://www.algolia.com/doc/guides/building-search-ui/going-further/backend-search/in-depth/understanding-the-api-response/#ranking-information).
*/
@javax.annotation.Nullable
public Boolean getGetRankingInfo() {
return getRankingInfo;
}
public BaseSearchParams setExplain(List explain) {
this.explain = explain;
return this;
}
public BaseSearchParams addExplain(String explainItem) {
if (this.explain == null) {
this.explain = new ArrayList<>();
}
this.explain.add(explainItem);
return this;
}
/** Enriches the API's response with information about how the query was processed. */
@javax.annotation.Nullable
public List getExplain() {
return explain;
}
public BaseSearchParams setSynonyms(Boolean synonyms) {
this.synonyms = synonyms;
return this;
}
/** Whether to take into account an index's synonyms for a particular search. */
@javax.annotation.Nullable
public Boolean getSynonyms() {
return synonyms;
}
public BaseSearchParams setClickAnalytics(Boolean clickAnalytics) {
this.clickAnalytics = clickAnalytics;
return this;
}
/**
* Indicates whether a query ID parameter is included in the search response. This is required for
* [tracking click and conversion
* events](https://www.algolia.com/doc/guides/sending-events/concepts/event-types/#events-related-to-algolia-requests).
*/
@javax.annotation.Nullable
public Boolean getClickAnalytics() {
return clickAnalytics;
}
public BaseSearchParams setAnalytics(Boolean analytics) {
this.analytics = analytics;
return this;
}
/**
* Indicates whether this query will be included in
* [analytics](https://www.algolia.com/doc/guides/search-analytics/guides/exclude-queries/).
*/
@javax.annotation.Nullable
public Boolean getAnalytics() {
return analytics;
}
public BaseSearchParams setAnalyticsTags(List analyticsTags) {
this.analyticsTags = analyticsTags;
return this;
}
public BaseSearchParams addAnalyticsTags(String analyticsTagsItem) {
if (this.analyticsTags == null) {
this.analyticsTags = new ArrayList<>();
}
this.analyticsTags.add(analyticsTagsItem);
return this;
}
/**
* Tags to apply to the query for [segmenting analytics
* data](https://www.algolia.com/doc/guides/search-analytics/guides/segments/).
*/
@javax.annotation.Nullable
public List getAnalyticsTags() {
return analyticsTags;
}
public BaseSearchParams setPercentileComputation(Boolean percentileComputation) {
this.percentileComputation = percentileComputation;
return this;
}
/** Whether to include or exclude a query from the processing-time percentile computation. */
@javax.annotation.Nullable
public Boolean getPercentileComputation() {
return percentileComputation;
}
public BaseSearchParams setEnableABTest(Boolean enableABTest) {
this.enableABTest = enableABTest;
return this;
}
/** Incidates whether this search will be considered in A/B testing. */
@javax.annotation.Nullable
public Boolean getEnableABTest() {
return enableABTest;
}
@Override
public boolean equals(Object o) {
if (this == o) {
return true;
}
if (o == null || getClass() != o.getClass()) {
return false;
}
BaseSearchParams baseSearchParams = (BaseSearchParams) o;
return (
Objects.equals(this.query, baseSearchParams.query) &&
Objects.equals(this.similarQuery, baseSearchParams.similarQuery) &&
Objects.equals(this.filters, baseSearchParams.filters) &&
Objects.equals(this.facetFilters, baseSearchParams.facetFilters) &&
Objects.equals(this.optionalFilters, baseSearchParams.optionalFilters) &&
Objects.equals(this.numericFilters, baseSearchParams.numericFilters) &&
Objects.equals(this.tagFilters, baseSearchParams.tagFilters) &&
Objects.equals(this.sumOrFiltersScores, baseSearchParams.sumOrFiltersScores) &&
Objects.equals(this.restrictSearchableAttributes, baseSearchParams.restrictSearchableAttributes) &&
Objects.equals(this.facets, baseSearchParams.facets) &&
Objects.equals(this.facetingAfterDistinct, baseSearchParams.facetingAfterDistinct) &&
Objects.equals(this.page, baseSearchParams.page) &&
Objects.equals(this.offset, baseSearchParams.offset) &&
Objects.equals(this.length, baseSearchParams.length) &&
Objects.equals(this.aroundLatLng, baseSearchParams.aroundLatLng) &&
Objects.equals(this.aroundLatLngViaIP, baseSearchParams.aroundLatLngViaIP) &&
Objects.equals(this.aroundRadius, baseSearchParams.aroundRadius) &&
Objects.equals(this.aroundPrecision, baseSearchParams.aroundPrecision) &&
Objects.equals(this.minimumAroundRadius, baseSearchParams.minimumAroundRadius) &&
Objects.equals(this.insideBoundingBox, baseSearchParams.insideBoundingBox) &&
Objects.equals(this.insidePolygon, baseSearchParams.insidePolygon) &&
Objects.equals(this.naturalLanguages, baseSearchParams.naturalLanguages) &&
Objects.equals(this.ruleContexts, baseSearchParams.ruleContexts) &&
Objects.equals(this.personalizationImpact, baseSearchParams.personalizationImpact) &&
Objects.equals(this.userToken, baseSearchParams.userToken) &&
Objects.equals(this.getRankingInfo, baseSearchParams.getRankingInfo) &&
Objects.equals(this.explain, baseSearchParams.explain) &&
Objects.equals(this.synonyms, baseSearchParams.synonyms) &&
Objects.equals(this.clickAnalytics, baseSearchParams.clickAnalytics) &&
Objects.equals(this.analytics, baseSearchParams.analytics) &&
Objects.equals(this.analyticsTags, baseSearchParams.analyticsTags) &&
Objects.equals(this.percentileComputation, baseSearchParams.percentileComputation) &&
Objects.equals(this.enableABTest, baseSearchParams.enableABTest)
);
}
@Override
public int hashCode() {
return Objects.hash(
query,
similarQuery,
filters,
facetFilters,
optionalFilters,
numericFilters,
tagFilters,
sumOrFiltersScores,
restrictSearchableAttributes,
facets,
facetingAfterDistinct,
page,
offset,
length,
aroundLatLng,
aroundLatLngViaIP,
aroundRadius,
aroundPrecision,
minimumAroundRadius,
insideBoundingBox,
insidePolygon,
naturalLanguages,
ruleContexts,
personalizationImpact,
userToken,
getRankingInfo,
explain,
synonyms,
clickAnalytics,
analytics,
analyticsTags,
percentileComputation,
enableABTest
);
}
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append("class BaseSearchParams {\n");
sb.append(" query: ").append(toIndentedString(query)).append("\n");
sb.append(" similarQuery: ").append(toIndentedString(similarQuery)).append("\n");
sb.append(" filters: ").append(toIndentedString(filters)).append("\n");
sb.append(" facetFilters: ").append(toIndentedString(facetFilters)).append("\n");
sb.append(" optionalFilters: ").append(toIndentedString(optionalFilters)).append("\n");
sb.append(" numericFilters: ").append(toIndentedString(numericFilters)).append("\n");
sb.append(" tagFilters: ").append(toIndentedString(tagFilters)).append("\n");
sb.append(" sumOrFiltersScores: ").append(toIndentedString(sumOrFiltersScores)).append("\n");
sb.append(" restrictSearchableAttributes: ").append(toIndentedString(restrictSearchableAttributes)).append("\n");
sb.append(" facets: ").append(toIndentedString(facets)).append("\n");
sb.append(" facetingAfterDistinct: ").append(toIndentedString(facetingAfterDistinct)).append("\n");
sb.append(" page: ").append(toIndentedString(page)).append("\n");
sb.append(" offset: ").append(toIndentedString(offset)).append("\n");
sb.append(" length: ").append(toIndentedString(length)).append("\n");
sb.append(" aroundLatLng: ").append(toIndentedString(aroundLatLng)).append("\n");
sb.append(" aroundLatLngViaIP: ").append(toIndentedString(aroundLatLngViaIP)).append("\n");
sb.append(" aroundRadius: ").append(toIndentedString(aroundRadius)).append("\n");
sb.append(" aroundPrecision: ").append(toIndentedString(aroundPrecision)).append("\n");
sb.append(" minimumAroundRadius: ").append(toIndentedString(minimumAroundRadius)).append("\n");
sb.append(" insideBoundingBox: ").append(toIndentedString(insideBoundingBox)).append("\n");
sb.append(" insidePolygon: ").append(toIndentedString(insidePolygon)).append("\n");
sb.append(" naturalLanguages: ").append(toIndentedString(naturalLanguages)).append("\n");
sb.append(" ruleContexts: ").append(toIndentedString(ruleContexts)).append("\n");
sb.append(" personalizationImpact: ").append(toIndentedString(personalizationImpact)).append("\n");
sb.append(" userToken: ").append(toIndentedString(userToken)).append("\n");
sb.append(" getRankingInfo: ").append(toIndentedString(getRankingInfo)).append("\n");
sb.append(" explain: ").append(toIndentedString(explain)).append("\n");
sb.append(" synonyms: ").append(toIndentedString(synonyms)).append("\n");
sb.append(" clickAnalytics: ").append(toIndentedString(clickAnalytics)).append("\n");
sb.append(" analytics: ").append(toIndentedString(analytics)).append("\n");
sb.append(" analyticsTags: ").append(toIndentedString(analyticsTags)).append("\n");
sb.append(" percentileComputation: ").append(toIndentedString(percentileComputation)).append("\n");
sb.append(" enableABTest: ").append(toIndentedString(enableABTest)).append("\n");
sb.append("}");
return sb.toString();
}
/**
* Convert the given object to string with each line indented by 4 spaces (except the first line).
*/
private String toIndentedString(Object o) {
if (o == null) {
return "null";
}
return o.toString().replace("\n", "\n ");
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy