algoliasearch.recommend.BaseIndexSettings.scala Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of algoliasearch-scala_3 Show documentation
Show all versions of algoliasearch-scala_3 Show documentation
Scala client for Algolia Search API
/** Recommend API The Recommend API lets you retrieve recommendations from one of Algolia's AI recommendation models
* that you previously trained on your data. ## Client libraries Use Algolia's API clients and libraries to reliably
* integrate Algolia's APIs with your apps. The official API clients are covered by Algolia's [Service Level
* Agreement](https://www.algolia.com/policies/sla/). See: [Algolia's
* ecosystem](https://www.algolia.com/doc/guides/getting-started/how-algolia-works/in-depth/ecosystem/) ## Base URLs
* The base URLs for requests to the Recommend API are: - `https://{APPLICATION_ID}.algolia.net` -
* `https://{APPLICATION_ID}-dsn.algolia.net`. If your subscription includes a [Distributed Search
* Network](https://dashboard.algolia.com/infra), this ensures that requests are sent to servers closest to users. Both
* URLs provide high availability by distributing requests with load balancing. **All requests must use HTTPS.** ##
* Retry strategy To guarantee a high availability, implement a retry strategy for all API requests using the URLs of
* your servers as fallbacks: - `https://{APPLICATION_ID}-1.algolianet.com` -
* `https://{APPLICATION_ID}-2.algolianet.com` - `https://{APPLICATION_ID}-3.algolianet.com` These URLs use a different
* DNS provider than the primary URLs. You should randomize this list to ensure an even load across the three servers.
* All Algolia API clients implement this retry strategy. ## Authentication To authenticate your API requests, add
* these headers: - `x-algolia-application-id`. Your Algolia application ID. - `x-algolia-api-key`. An API key with the
* necessary permissions to make the request. The required access control list (ACL) to make a request is listed in
* each endpoint's reference. You can find your application ID and API key in the [Algolia
* dashboard](https://dashboard.algolia.com/account). ## Request format Request bodies must be JSON objects. ##
* Response status and errors The Recommend API returns JSON responses. Since JSON doesn't guarantee any specific
* ordering, don't rely on the order of attributes in the API response. Successful responses return a `2xx` status.
* Client errors return a `4xx` status. Server errors are indicated by a `5xx` status. Error responses have a `message`
* property with more information. ## Version The current version of the Recommend API is version 1, as indicated by
* the `/1/` in each endpoint's URL.
*
* The version of the OpenAPI document: 1.0.0
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech Do not edit the class manually.
*/
package algoliasearch.recommend
import algoliasearch.recommend.SupportedLanguage._
/** BaseIndexSettings
*
* @param attributesForFaceting
* Attributes used for [faceting](https://www.algolia.com/doc/guides/managing-results/refine-results/faceting/).
* Facets are attributes that let you categorize search results. They can be used for filtering search results. By
* default, no attribute is used for faceting. Attribute names are case-sensitive. **Modifiers** -
* `filterOnly(\"ATTRIBUTE\")`. Allows using this attribute as a filter, but doesn't evalue the facet values. -
* `searchable(\"ATTRIBUTE\")`. Allows searching for facet values. - `afterDistinct(\"ATTRIBUTE\")`. Evaluates the
* facet count _after_ deduplication with `distinct`. This ensures accurate facet counts. You can apply this modifier
* to searchable facets: `afterDistinct(searchable(ATTRIBUTE))`.
* @param replicas
* Creates [replica
* indices](https://www.algolia.com/doc/guides/managing-results/refine-results/sorting/in-depth/replicas/). Replicas
* are copies of a primary index with the same records but different settings, synonyms, or rules. If you want to
* offer a different ranking or sorting of your search results, you'll use replica indices. All index operations on a
* primary index are automatically forwarded to its replicas. To add a replica index, you must provide the complete
* set of replicas to this parameter. If you omit a replica from this list, the replica turns into a regular,
* standalone index that will no longer by synced with the primary index. **Modifier** - `virtual(\"REPLICA\")`.
* Create a virtual replica, Virtual replicas don't increase the number of records and are optimized for [Relevant
* sorting](https://www.algolia.com/doc/guides/managing-results/refine-results/sorting/in-depth/relevant-sort/).
* @param paginationLimitedTo
* Maximum number of search results that can be obtained through pagination. Higher pagination limits might slow down
* your search. For pagination limits above 1,000, the sorting of results beyond the 1,000th hit can't be guaranteed.
* @param unretrievableAttributes
* Attributes that can't be retrieved at query time. This can be useful if you want to use an attribute for ranking
* or to [restrict
* access](https://www.algolia.com/doc/guides/security/api-keys/how-to/user-restricted-access-to-data/), but don't
* want to include it in the search results. Attribute names are case-sensitive.
* @param disableTypoToleranceOnWords
* Words for which you want to turn off [typo
* tolerance](https://www.algolia.com/doc/guides/managing-results/optimize-search-results/typo-tolerance/). This also
* turns off [word splitting and
* concatenation](https://www.algolia.com/doc/guides/managing-results/optimize-search-results/handling-natural-languages-nlp/in-depth/splitting-and-concatenation/)
* for the specified words.
* @param attributesToTransliterate
* Attributes, for which you want to support [Japanese
* transliteration](https://www.algolia.com/doc/guides/managing-results/optimize-search-results/handling-natural-languages-nlp/in-depth/language-specific-configurations/#japanese-transliteration-and-type-ahead).
* Transliteration supports searching in any of the Japanese writing systems. To support transliteration, you must
* set the indexing language to Japanese. Attribute names are case-sensitive.
* @param camelCaseAttributes
* Attributes for which to split [camel case](https://wikipedia.org/wiki/Camel_case) words. Attribute names are
* case-sensitive.
* @param decompoundedAttributes
* Searchable attributes to which Algolia should apply [word
* segmentation](https://www.algolia.com/doc/guides/managing-results/optimize-search-results/handling-natural-languages-nlp/how-to/customize-segmentation/)
* (decompounding). Attribute names are case-sensitive. Compound words are formed by combining two or more individual
* words, and are particularly prevalent in Germanic languages—for example, \"firefighter\". With decompounding, the
* individual components are indexed separately. You can specify different lists for different languages.
* Decompounding is supported for these languages: Dutch (`nl`), German (`de`), Finnish (`fi`), Danish (`da`),
* Swedish (`sv`), and Norwegian (`no`). Decompounding doesn't work for words with [non-spacing mark Unicode
* characters](https://www.charactercodes.net/category/non-spacing_mark). For example, `Gartenstühle` won't be
* decompounded if the `ü` consists of `u` (U+0075) and `◌̈` (U+0308).
* @param indexLanguages
* Languages for language-specific processing steps, such as word detection and dictionary settings. **You should
* always specify an indexing language.** If you don't specify an indexing language, the search engine uses all
* [supported
* languages](https://www.algolia.com/doc/guides/managing-results/optimize-search-results/handling-natural-languages-nlp/in-depth/supported-languages/),
* or the languages you specified with the `ignorePlurals` or `removeStopWords` parameters. This can lead to
* unexpected search results. For more information, see [Language-specific
* configuration](https://www.algolia.com/doc/guides/managing-results/optimize-search-results/handling-natural-languages-nlp/in-depth/language-specific-configurations/).
* @param disablePrefixOnAttributes
* Searchable attributes for which you want to turn off [prefix
* matching](https://www.algolia.com/doc/guides/managing-results/optimize-search-results/override-search-engine-defaults/#adjusting-prefix-search).
* Attribute names are case-sensitive.
* @param allowCompressionOfIntegerArray
* Whether arrays with exclusively non-negative integers should be compressed for better performance. If true, the
* compressed arrays may be reordered.
* @param numericAttributesForFiltering
* Numeric attributes that can be used as [numerical
* filters](https://www.algolia.com/doc/guides/managing-results/rules/detecting-intent/how-to/applying-a-custom-filter-for-a-specific-query/#numerical-filters).
* Attribute names are case-sensitive. By default, all numeric attributes are available as numerical filters. For
* faster indexing, reduce the number of numeric attributes. If you want to turn off filtering for all numeric
* attributes, specifiy an attribute that doesn't exist in your index, such as `NO_NUMERIC_FILTERING`. **Modifier** -
* `equalOnly(\"ATTRIBUTE\")`. Support only filtering based on equality comparisons `=` and `!=`.
* @param separatorsToIndex
* Controls which separators are indexed. Separators are all non-letter characters except spaces and currency
* characters, such as $€£¥. By default, separator characters aren't indexed. With `separatorsToIndex`, Algolia
* treats separator characters as separate words. For example, a search for `C#` would report two matches.
* @param searchableAttributes
* Attributes used for searching. Attribute names are case-sensitive. By default, all attributes are searchable and
* the
* [Attribute](https://www.algolia.com/doc/guides/managing-results/relevance-overview/in-depth/ranking-criteria/#attribute)
* ranking criterion is turned off. With a non-empty list, Algolia only returns results with matches in the selected
* attributes. In addition, the Attribute ranking criterion is turned on: matches in attributes that are higher in
* the list of `searchableAttributes` rank first. To make matches in two attributes rank equally, include them in a
* comma-separated string, such as `\"title,alternate_title\"`. Attributes with the same priority are always
* unordered. For more information, see [Searchable
* attributes](https://www.algolia.com/doc/guides/sending-and-managing-data/prepare-your-data/how-to/setting-searchable-attributes/).
* **Modifier** - `unordered(\"ATTRIBUTE\")`. Ignore the position of a match within the attribute. Without modifier,
* matches at the beginning of an attribute rank higer than matches at the end.
* @param userData
* An object with custom data. You can store up to 32kB as custom data.
* @param customNormalization
* Characters and their normalized replacements. This overrides Algolia's default
* [normalization](https://www.algolia.com/doc/guides/managing-results/optimize-search-results/handling-natural-languages-nlp/in-depth/normalization/).
* @param attributeForDistinct
* Attribute that should be used to establish groups of results. Attribute names are case-sensitive. All records with
* the same value for this attribute are considered a group. You can combine `attributeForDistinct` with the
* `distinct` search parameter to control how many items per group are included in the search results. If you want to
* use the same attribute also for faceting, use the `afterDistinct` modifier of the `attributesForFaceting` setting.
* This applies faceting _after_ deduplication, which will result in accurate facet counts.
*/
case class BaseIndexSettings(
attributesForFaceting: Option[Seq[String]] = scala.None,
replicas: Option[Seq[String]] = scala.None,
paginationLimitedTo: Option[Int] = scala.None,
unretrievableAttributes: Option[Seq[String]] = scala.None,
disableTypoToleranceOnWords: Option[Seq[String]] = scala.None,
attributesToTransliterate: Option[Seq[String]] = scala.None,
camelCaseAttributes: Option[Seq[String]] = scala.None,
decompoundedAttributes: Option[Any] = scala.None,
indexLanguages: Option[Seq[SupportedLanguage]] = scala.None,
disablePrefixOnAttributes: Option[Seq[String]] = scala.None,
allowCompressionOfIntegerArray: Option[Boolean] = scala.None,
numericAttributesForFiltering: Option[Seq[String]] = scala.None,
separatorsToIndex: Option[String] = scala.None,
searchableAttributes: Option[Seq[String]] = scala.None,
userData: Option[Any] = scala.None,
customNormalization: Option[Map[String, Map[String, String]]] = scala.None,
attributeForDistinct: Option[String] = scala.None
)
© 2015 - 2024 Weber Informatics LLC | Privacy Policy