From 2175dc62d60689007daa7b2bf1c70feb13cadbeb Mon Sep 17 00:00:00 2001 From: Clara Muller <5667350+ClaraMuller@users.noreply.github.com> Date: Tue, 15 Jul 2025 18:41:36 +0200 Subject: [PATCH 1/4] refactor(specs): create `composition-full/schemas/components` directory --- .../common/schemas/BatchCompositionAction.yml | 2 +- .../schemas/ListCompositionsResponse.yml | 2 +- .../schemas/RulesBatchCompositionAction.yml | 2 +- .../common/schemas/SearchParams.yml | 956 +----------------- .../schemas/{ => components}/Composition.yml | 9 +- .../{ => components}/CompositionBehavior.yml | 4 +- .../{ => components}/CompositionRule.yml | 6 +- .../common/schemas/components/Injection.yml | 953 +++++++++++++++++ .../paths/advanced/getTask.yml | 2 +- .../paths/objects/objects.yml | 4 +- specs/composition-full/paths/rules/rule.yml | 4 +- .../paths/rules/saveRules.yml | 2 +- .../paths/rules/searchRules.yml | 6 +- .../composition-full/paths/search/search.yml | 2 +- .../paths/search/searchForFacetValues.yml | 2 +- .../parameters.yml => paths/urlParams.yml} | 6 +- 16 files changed, 981 insertions(+), 981 deletions(-) rename specs/composition-full/common/schemas/{ => components}/Composition.yml (76%) rename specs/composition-full/common/schemas/{ => components}/CompositionBehavior.yml (93%) rename specs/composition-full/common/schemas/{ => components}/CompositionRule.yml (93%) create mode 100644 specs/composition-full/common/schemas/components/Injection.yml rename specs/composition-full/{common/parameters.yml => paths/urlParams.yml} (50%) diff --git a/specs/composition-full/common/schemas/BatchCompositionAction.yml b/specs/composition-full/common/schemas/BatchCompositionAction.yml index f784e1dc2e0..fb9e7ce55f5 100644 --- a/specs/composition-full/common/schemas/BatchCompositionAction.yml +++ b/specs/composition-full/common/schemas/BatchCompositionAction.yml @@ -10,5 +10,5 @@ deleteCompositionAction: batchCompositionAction: oneOf: - - $ref: './Composition.yml#/composition' + - $ref: './components/Composition.yml#/composition' - $ref: '#/deleteCompositionAction' diff --git a/specs/composition-full/common/schemas/ListCompositionsResponse.yml b/specs/composition-full/common/schemas/ListCompositionsResponse.yml index 963c095ab63..fe37e05dc43 100644 --- a/specs/composition-full/common/schemas/ListCompositionsResponse.yml +++ b/specs/composition-full/common/schemas/ListCompositionsResponse.yml @@ -6,7 +6,7 @@ listCompositionsResponse: type: array description: All compositions in your Algolia application. items: - $ref: './Composition.yml#/composition' + $ref: './components/Composition.yml#/composition' nbPages: type: integer description: Number of pages. diff --git a/specs/composition-full/common/schemas/RulesBatchCompositionAction.yml b/specs/composition-full/common/schemas/RulesBatchCompositionAction.yml index 61e46d32008..d7666524e41 100644 --- a/specs/composition-full/common/schemas/RulesBatchCompositionAction.yml +++ b/specs/composition-full/common/schemas/RulesBatchCompositionAction.yml @@ -10,5 +10,5 @@ deleteCompositionRuleAction: rulesBatchCompositionAction: oneOf: - - $ref: './CompositionRule.yml#/compositionRule' + - $ref: './components/CompositionRule.yml#/compositionRule' - $ref: '#/deleteCompositionRuleAction' diff --git a/specs/composition-full/common/schemas/SearchParams.yml b/specs/composition-full/common/schemas/SearchParams.yml index 130fa1119b1..4e1e8cce086 100644 --- a/specs/composition-full/common/schemas/SearchParams.yml +++ b/specs/composition-full/common/schemas/SearchParams.yml @@ -131,958 +131,4 @@ params: This setting only has an effect if you activated Dynamic Re-Ranking for this index in the Algolia dashboard. default: true x-categories: - - Filtering - -mainInjectionQueryParameters: - title: Composition Main Injection Query parameters as object - type: object - additionalProperties: false - properties: - attributesToRetrieve: - type: array - items: - type: string - example: - - author - - title - - content - description: | - Attributes to include in the API response. - - To reduce the size of your response, you can retrieve only some of the attributes. - Attribute names are case-sensitive. - - - `*` retrieves all attributes, except attributes included in the `customRanking` and `unretrievableAttributes` settings. - - To retrieve all attributes except a specific one, prefix the attribute with a dash and combine it with the `*`: `["*", "-ATTRIBUTE"]`. - - The `objectID` attribute is always included. - default: ['*'] - x-categories: - - Attributes - restrictSearchableAttributes: - type: array - items: - type: string - example: [title, author] - description: | - Restricts a search to a subset of your searchable attributes. - Attribute names are case-sensitive. - default: [] - x-categories: - - Filtering - filters: - $ref: '../../../common/schemas/SearchParams.yml#/filters' - facetFilters: - $ref: '../../../common/schemas/SearchParams.yml#/facetFilters' - optionalFilters: - $ref: '../../../common/schemas/SearchParams.yml#/optionalFilters' - numericFilters: - $ref: '../../../common/schemas/SearchParams.yml#/numericFilters' - sumOrFiltersScores: - type: boolean - description: | - Whether to sum all filter scores. - - If true, all filter scores are summed. - Otherwise, the maximum filter score is kept. - For more information, see [filter scores](https://www.algolia.com/doc/guides/managing-results/refine-results/filtering/in-depth/filter-scoring/#accumulating-scores-with-sumorfiltersscores). - default: false - x-categories: - - Filtering - facets: - type: array - items: - type: string - description: | - Facets for which to retrieve facet values that match the search criteria and the number of matching facet values. - - To retrieve all facets, use the wildcard character `*`. - For more information, see [facets](https://www.algolia.com/doc/guides/managing-results/refine-results/faceting/#contextual-facet-values-and-counts). - default: [] - example: ['*'] - x-categories: - - Faceting - maxValuesPerFacet: - type: integer - description: Maximum number of facet values to return for each facet. - default: 100 - maximum: 1000 - x-categories: - - Faceting - facetingAfterDistinct: - type: boolean - description: | - Whether faceting should be applied after deduplication with `distinct`. - - This leads to accurate facet counts when using faceting in combination with `distinct`. - It's usually better to use `afterDistinct` modifiers in the `attributesForFaceting` setting, - as `facetingAfterDistinct` only computes correct facet counts if all records have the same facet values for the `attributeForDistinct`. - default: false - x-categories: - - Faceting - sortFacetValuesBy: - type: string - description: | - Order in which to retrieve facet values. - - - `count`. - Facet values are retrieved by decreasing count. - The count is the number of matching records containing this facet value. - - - `alpha`. - Retrieve facet values alphabetically. - - This setting doesn't influence how facet values are displayed in your UI (see `renderingContent`). - For more information, see [facet value display](https://www.algolia.com/doc/guides/building-search-ui/ui-and-ux-patterns/facet-display/js/). - default: count - x-categories: - - Faceting - attributesToHighlight: - type: array - items: - type: string - example: [author, title, content] - description: | - Attributes to highlight. - - By default, all searchable attributes are highlighted. - Use `*` to highlight all attributes or use an empty array `[]` to turn off highlighting. - Attribute names are case-sensitive. - - With highlighting, strings that match the search query are surrounded by HTML tags defined by `highlightPreTag` and `highlightPostTag`. - You can use this to visually highlight matching parts of a search query in your UI. - - For more information, see [Highlighting and snippeting](https://www.algolia.com/doc/guides/building-search-ui/ui-and-ux-patterns/highlighting-snippeting/js/). - x-categories: - - Highlighting and Snippeting - attributesToSnippet: - type: array - items: - type: string - example: - - content:80 - - description - description: | - Attributes for which to enable snippets. - Attribute names are case-sensitive. - - Snippets provide additional context to matched words. - If you enable snippets, they include 10 words, including the matched word. - The matched word will also be wrapped by HTML tags for highlighting. - You can adjust the number of words with the following notation: `ATTRIBUTE:NUMBER`, - where `NUMBER` is the number of words to be extracted. - default: [] - x-categories: - - Highlighting and Snippeting - highlightPreTag: - type: string - description: HTML tag to insert before the highlighted parts in all highlighted results and snippets. - default: - x-categories: - - Highlighting and Snippeting - highlightPostTag: - type: string - description: HTML tag to insert after the highlighted parts in all highlighted results and snippets. - default: - x-categories: - - Highlighting and Snippeting - snippetEllipsisText: - type: string - description: String used as an ellipsis indicator when a snippet is truncated. - default: … - x-categories: - - Highlighting and Snippeting - restrictHighlightAndSnippetArrays: - type: boolean - description: | - Whether to restrict highlighting and snippeting to items that at least partially matched the search query. - By default, all items are highlighted and snippeted. - default: false - x-categories: - - Highlighting and Snippeting - hitsPerPage: - $ref: '../../../common/schemas/IndexSettings.yml#/hitsPerPage' - length: - type: integer - description: Number of hits to retrieve (used in combination with `offset`). - minimum: 0 - maximum: 1000 - x-categories: - - Pagination - minWordSizefor1Typo: - type: integer - description: Minimum number of characters a word in the search query must contain to accept matches with [one typo](https://www.algolia.com/doc/guides/managing-results/optimize-search-results/typo-tolerance/in-depth/configuring-typo-tolerance/#configuring-word-length-for-typos). - default: 4 - x-categories: - - Typos - minWordSizefor2Typos: - type: integer - description: Minimum number of characters a word in the search query must contain to accept matches with [two typos](https://www.algolia.com/doc/guides/managing-results/optimize-search-results/typo-tolerance/in-depth/configuring-typo-tolerance/#configuring-word-length-for-typos). - default: 8 - x-categories: - - Typos - typoTolerance: - $ref: '../../../common/schemas/IndexSettings.yml#/typoTolerance' - allowTyposOnNumericTokens: - type: boolean - description: | - Whether to allow typos on numbers in the search query. - - Turn off this setting to reduce the number of irrelevant matches - when searching in large sets of similar numbers. - default: true - x-categories: - - Typos - disableTypoToleranceOnAttributes: - type: array - items: - type: string - example: - - sku - description: | - Attributes for which you want to turn off [typo tolerance](https://www.algolia.com/doc/guides/managing-results/optimize-search-results/typo-tolerance/). - Attribute names are case-sensitive. - - Returning only exact matches can help when: - - - [Searching in hyphenated attributes](https://www.algolia.com/doc/guides/managing-results/optimize-search-results/typo-tolerance/how-to/how-to-search-in-hyphenated-attributes/). - - Reducing the number of matches when you have too many. - This can happen with attributes that are long blocks of text, such as product descriptions. - - Consider alternatives such as `disableTypoToleranceOnWords` or adding synonyms if your attributes have intentional unusual spellings that might look like typos. - default: [] - x-categories: - - Typos - ignorePlurals: - $ref: '../../../common/schemas/IndexSettings.yml#/ignorePlurals' - removeStopWords: - $ref: '../../../common/schemas/IndexSettings.yml#/removeStopWords' - queryLanguages: - type: array - items: - $ref: '../../../common/schemas/IndexSettings.yml#/supportedLanguage' - example: - - es - description: | - Languages for language-specific query processing steps such as plurals, stop-word removal, and word-detection dictionaries. - - This setting sets a default list of languages used by the `removeStopWords` and `ignorePlurals` settings. - This setting also sets a dictionary for word detection in the logogram-based [CJK](https://www.algolia.com/doc/guides/managing-results/optimize-search-results/handling-natural-languages-nlp/in-depth/normalization/#normalization-for-logogram-based-languages-cjk) languages. - To support this, you must place the CJK language **first**. - - **You should always specify a query 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/). - default: [] - x-categories: - - Languages - naturalLanguages: - type: array - items: - $ref: '../../../common/schemas/IndexSettings.yml#/supportedLanguage' - description: | - ISO language codes that adjust settings that are useful for processing natural language queries (as opposed to keyword searches): - - - Sets `removeStopWords` and `ignorePlurals` to the list of provided languages. - - Sets `removeWordsIfNoResults` to `allOptional`. - - Adds a `natural_language` attribute to `ruleContexts` and `analyticsTags`. - default: [] - x-categories: - - Languages - decompoundQuery: - type: boolean - description: | - Whether to split compound words in the query into their building blocks. - - For more information, see [Word segmentation](https://www.algolia.com/doc/guides/managing-results/optimize-search-results/handling-natural-languages-nlp/in-depth/language-specific-configurations/#splitting-compound-words). - Word segmentation is supported for these languages: German, Dutch, Finnish, Swedish, and Norwegian. - 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). - default: true - x-categories: - - Languages - enableRules: - type: boolean - description: Whether to enable rules. - default: true - x-categories: - - Rules - ruleContexts: - type: array - items: - type: string - description: | - Assigns a rule context to the search query. - - [Rule contexts](https://www.algolia.com/doc/guides/managing-results/rules/rules-overview/how-to/customize-search-results-by-platform/#whats-a-context) are strings that you can use to trigger matching rules. - default: [] - example: [mobile] - x-categories: - - Rules - enablePersonalization: - type: boolean - description: Whether to enable Personalization. - default: false - x-categories: - - Personalization - personalizationImpact: - type: integer - description: | - Impact that Personalization should have on this search. - - The higher this value is, the more Personalization determines the ranking compared to other factors. - For more information, see [Understanding Personalization impact](https://www.algolia.com/doc/guides/personalization/personalizing-results/in-depth/configuring-personalization/#understanding-personalization-impact). - default: 100 - minimum: 0 - maximum: 100 - x-categories: - - Personalization - queryType: - $ref: '../../../common/schemas/IndexSettings.yml#/queryType' - removeWordsIfNoResults: - $ref: '../../../common/schemas/IndexSettings.yml#/removeWordsIfNoResults' - advancedSyntax: - type: boolean - description: | - Whether to support phrase matching and excluding words from search queries. - - Use the `advancedSyntaxFeatures` parameter to control which feature is supported. - default: false - x-categories: - - Query strategy - optionalWords: - type: array - items: - type: string - example: - - blue - - iphone case - description: | - Words that should be considered optional when found in the query. - - By default, records must match all words in the search query to be included in the search results. - Adding optional words can help to increase the number of search results by running an additional search query that doesn't include the optional words. - For example, if the search query is "action video" and "video" is an optional word, - the search engine runs two queries. One for "action video" and one for "action". - Records that match all words are ranked higher. - - For a search query with 4 or more words **and** all its words are optional, - the number of matched words required for a record to be included in the search results increases for every 1,000 records: - - - If `optionalWords` has less than 10 words, the required number of matched words increases by 1: - results 1 to 1,000 require 1 matched word, results 1,001 to 2000 need 2 matched words. - - If `optionalWords` has 10 or more words, the number of required matched words increases by the number of optional words divided by 5 (rounded down). - For example, with 18 optional words: results 1 to 1,000 require 1 matched word, results 1,001 to 2000 need 4 matched words. - - For more information, see [Optional words](https://www.algolia.com/doc/guides/managing-results/optimize-search-results/empty-or-insufficient-results/#creating-a-list-of-optional-words). - default: [] - x-categories: - - Query strategy - disableExactOnAttributes: - type: array - items: - type: string - example: - - description - description: | - Searchable attributes for which you want to [turn off the Exact ranking criterion](https://www.algolia.com/doc/guides/managing-results/optimize-search-results/override-search-engine-defaults/in-depth/adjust-exact-settings/#turn-off-exact-for-some-attributes). - Attribute names are case-sensitive. - - This can be useful for attributes with long values, where the likelihood of an exact match is high, - such as product descriptions. - Turning off the Exact ranking criterion for these attributes favors exact matching on other attributes. - This reduces the impact of individual attributes with a lot of content on ranking. - default: [] - x-categories: - - Query strategy - exactOnSingleWordQuery: - $ref: '../../../common/schemas/IndexSettings.yml#/exactOnSingleWordQuery' - alternativesAsExact: - type: array - items: - $ref: '../../../common/schemas/IndexSettings.yml#/alternativesAsExact' - description: | - Determine which plurals and synonyms should be considered an exact matches. - - By default, Algolia treats singular and plural forms of a word, and single-word synonyms, as [exact](https://www.algolia.com/doc/guides/managing-results/relevance-overview/in-depth/ranking-criteria/#exact) matches when searching. - For example: - - - "swimsuit" and "swimsuits" are treated the same - - "swimsuit" and "swimwear" are treated the same (if they are [synonyms](https://www.algolia.com/doc/guides/managing-results/optimize-search-results/adding-synonyms/#regular-synonyms)). - - - `ignorePlurals`. - Plurals and similar declensions added by the `ignorePlurals` setting are considered exact matches. - - - `singleWordSynonym`. - Single-word synonyms, such as "NY" = "NYC", are considered exact matches. - - - `multiWordsSynonym`. - Multi-word synonyms, such as "NY" = "New York", are considered exact matches. - default: [ignorePlurals, singleWordSynonym] - x-categories: - - Query strategy - advancedSyntaxFeatures: - type: array - items: - $ref: '../../../common/schemas/IndexSettings.yml#/advancedSyntaxFeatures' - description: | - Advanced search syntax features you want to support. - - - `exactPhrase`. - Phrases in quotes must match exactly. - For example, `sparkly blue "iPhone case"` only returns records with the exact string "iPhone case". - - - `excludeWords`. - Query words prefixed with a `-` must not occur in a record. - For example, `search -engine` matches records that contain "search" but not "engine". - - This setting only has an effect if `advancedSyntax` is true. - default: [exactPhrase, excludeWords] - x-categories: - - Query strategy - distinct: - $ref: '../../../common/schemas/IndexSettings.yml#/distinct' - getRankingInfo: - type: boolean - description: Whether the search response should include detailed ranking information. - clickAnalytics: - type: boolean - description: | - Whether to include a `queryID` attribute in the response. - - The query ID is a unique identifier for a search query and is required for tracking [click and conversion events](https://www.algolia.com/guides/sending-events/getting-started/). - default: false - x-categories: - - Analytics - analytics: - type: boolean - description: Whether this search will be included in Analytics. - default: true - x-categories: - - Analytics - analyticsTags: - type: array - items: - type: string - description: Tags to apply to the query for [segmenting analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments/). - default: [] - x-categories: - - Analytics - synonyms: - type: boolean - description: Whether to take into account an index's synonyms for this search. - default: true - x-categories: - - Advanced - replaceSynonymsInHighlight: - type: boolean - description: | - Whether to replace a highlighted word with the matched synonym. - - By default, the original words are highlighted even if a synonym matches. - For example, with `home` as a synonym for `house` and a search for `home`, - records matching either "home" or "house" are included in the search results, - and either "home" or "house" are highlighted. - - With `replaceSynonymsInHighlight` set to `true`, a search for `home` still matches the same records, - but all occurrences of "house" are replaced by "home" in the highlighted response. - default: false - x-categories: - - Highlighting and Snippeting - minProximity: - type: integer - minimum: 1 - maximum: 7 - description: | - Minimum proximity score for two matching words. - - This adjusts the [Proximity ranking criterion](https://www.algolia.com/doc/guides/managing-results/relevance-overview/in-depth/ranking-criteria/#proximity) - by equally scoring matches that are farther apart. - - For example, if `minProximity` is 2, neighboring matches and matches with one word between them would have the same score. - default: 1 - x-categories: - - Advanced - responseFields: - type: array - items: - type: string - description: | - Properties to include in the API response of `search` and `browse` requests. - - By default, all response properties are included. - To reduce the response size, you can select, which attributes should be included. - - You can't exclude these properties: - `message`, `warning`, `cursor`, `serverUsed`, `indexUsed`, - `abTestVariantID`, `parsedQuery`, or any property triggered by the `getRankingInfo` parameter. - - Don't exclude properties that you might need in your search UI. - default: ['*'] - x-categories: - - Advanced - maxFacetHits: - $ref: '../../../common/schemas/IndexSettings.yml#/maxFacetHits' - percentileComputation: - type: boolean - description: Whether to include this search when calculating processing-time percentiles. - default: true - x-categories: - - Advanced - attributeCriteriaComputedByMinProximity: - type: boolean - description: | - Whether the best matching attribute should be determined by minimum proximity. - - This setting only affects ranking if the Attribute ranking criterion comes before Proximity in the `ranking` setting. - If true, the best matching attribute is selected based on the minimum proximity of multiple matches. - Otherwise, the best matching attribute is determined by the order in the `searchableAttributes` setting. - default: false - x-categories: - - Advanced - enableABTest: - type: boolean - description: Whether to enable A/B testing for this search. - default: true - x-categories: - - Advanced - enableReRanking: - type: boolean - description: | - Whether this search will use [Dynamic Re-Ranking](https://www.algolia.com/doc/guides/algolia-ai/re-ranking/). - - This setting only has an effect if you activated Dynamic Re-Ranking for this index in the Algolia dashboard. - default: true - x-categories: - - Filtering - -injectedItemsQueryParameters: - title: Composition injectedItems Query parameters as object - type: object - additionalProperties: false - properties: - attributesToRetrieve: - type: array - items: - type: string - example: - - author - - title - - content - description: | - Attributes to include in the API response. - - To reduce the size of your response, you can retrieve only some of the attributes. - Attribute names are case-sensitive. - - - `*` retrieves all attributes, except attributes included in the `customRanking` and `unretrievableAttributes` settings. - - To retrieve all attributes except a specific one, prefix the attribute with a dash and combine it with the `*`: `["*", "-ATTRIBUTE"]`. - - The `objectID` attribute is always included. - default: ['*'] - x-categories: - - Attributes - restrictSearchableAttributes: - type: array - items: - type: string - example: [title, author] - description: | - Restricts a search to a subset of your searchable attributes. - Attribute names are case-sensitive. - default: [] - x-categories: - - Filtering - filters: - $ref: '../../../common/schemas/SearchParams.yml#/filters' - facetFilters: - $ref: '../../../common/schemas/SearchParams.yml#/facetFilters' - optionalFilters: - $ref: '../../../common/schemas/SearchParams.yml#/optionalFilters' - numericFilters: - $ref: '../../../common/schemas/SearchParams.yml#/numericFilters' - attributesToHighlight: - type: array - items: - type: string - example: [author, title, content] - description: | - Attributes to highlight. - - By default, all searchable attributes are highlighted. - Use `*` to highlight all attributes or use an empty array `[]` to turn off highlighting. - Attribute names are case-sensitive. - - With highlighting, strings that match the search query are surrounded by HTML tags defined by `highlightPreTag` and `highlightPostTag`. - You can use this to visually highlight matching parts of a search query in your UI. - - For more information, see [Highlighting and snippeting](https://www.algolia.com/doc/guides/building-search-ui/ui-and-ux-patterns/highlighting-snippeting/js/). - x-categories: - - Highlighting and Snippeting - attributesToSnippet: - type: array - items: - type: string - example: - - content:80 - - description - description: | - Attributes for which to enable snippets. - Attribute names are case-sensitive. - - Snippets provide additional context to matched words. - If you enable snippets, they include 10 words, including the matched word. - The matched word will also be wrapped by HTML tags for highlighting. - You can adjust the number of words with the following notation: `ATTRIBUTE:NUMBER`, - where `NUMBER` is the number of words to be extracted. - default: [] - x-categories: - - Highlighting and Snippeting - highlightPreTag: - type: string - description: HTML tag to insert before the highlighted parts in all highlighted results and snippets. - default: - x-categories: - - Highlighting and Snippeting - highlightPostTag: - type: string - description: HTML tag to insert after the highlighted parts in all highlighted results and snippets. - default: - x-categories: - - Highlighting and Snippeting - snippetEllipsisText: - type: string - description: String used as an ellipsis indicator when a snippet is truncated. - default: … - x-categories: - - Highlighting and Snippeting - restrictHighlightAndSnippetArrays: - type: boolean - description: | - Whether to restrict highlighting and snippeting to items that at least partially matched the search query. - By default, all items are highlighted and snippeted. - default: false - x-categories: - - Highlighting and Snippeting - minWordSizefor1Typo: - type: integer - description: Minimum number of characters a word in the search query must contain to accept matches with [one typo](https://www.algolia.com/doc/guides/managing-results/optimize-search-results/typo-tolerance/in-depth/configuring-typo-tolerance/#configuring-word-length-for-typos). - default: 4 - x-categories: - - Typos - minWordSizefor2Typos: - type: integer - description: Minimum number of characters a word in the search query must contain to accept matches with [two typos](https://www.algolia.com/doc/guides/managing-results/optimize-search-results/typo-tolerance/in-depth/configuring-typo-tolerance/#configuring-word-length-for-typos). - default: 8 - x-categories: - - Typos - typoTolerance: - $ref: '../../../common/schemas/IndexSettings.yml#/typoTolerance' - allowTyposOnNumericTokens: - type: boolean - description: | - Whether to allow typos on numbers in the search query. - - Turn off this setting to reduce the number of irrelevant matches - when searching in large sets of similar numbers. - default: true - x-categories: - - Typos - disableTypoToleranceOnAttributes: - type: array - items: - type: string - example: - - sku - description: | - Attributes for which you want to turn off [typo tolerance](https://www.algolia.com/doc/guides/managing-results/optimize-search-results/typo-tolerance/). - Attribute names are case-sensitive. - - Returning only exact matches can help when: - - - [Searching in hyphenated attributes](https://www.algolia.com/doc/guides/managing-results/optimize-search-results/typo-tolerance/how-to/how-to-search-in-hyphenated-attributes/). - - Reducing the number of matches when you have too many. - This can happen with attributes that are long blocks of text, such as product descriptions. - - Consider alternatives such as `disableTypoToleranceOnWords` or adding synonyms if your attributes have intentional unusual spellings that might look like typos. - default: [] - x-categories: - - Typos - ignorePlurals: - $ref: '../../../common/schemas/IndexSettings.yml#/ignorePlurals' - removeStopWords: - $ref: '../../../common/schemas/IndexSettings.yml#/removeStopWords' - queryLanguages: - type: array - items: - $ref: '../../../common/schemas/IndexSettings.yml#/supportedLanguage' - example: - - es - description: | - Languages for language-specific query processing steps such as plurals, stop-word removal, and word-detection dictionaries. - - This setting sets a default list of languages used by the `removeStopWords` and `ignorePlurals` settings. - This setting also sets a dictionary for word detection in the logogram-based [CJK](https://www.algolia.com/doc/guides/managing-results/optimize-search-results/handling-natural-languages-nlp/in-depth/normalization/#normalization-for-logogram-based-languages-cjk) languages. - To support this, you must place the CJK language **first**. - - **You should always specify a query 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/). - default: [] - x-categories: - - Languages - naturalLanguages: - type: array - items: - $ref: '../../../common/schemas/IndexSettings.yml#/supportedLanguage' - description: | - ISO language codes that adjust settings that are useful for processing natural language queries (as opposed to keyword searches): - - - Sets `removeStopWords` and `ignorePlurals` to the list of provided languages. - - Sets `removeWordsIfNoResults` to `allOptional`. - - Adds a `natural_language` attribute to `ruleContexts` and `analyticsTags`. - default: [] - x-categories: - - Languages - decompoundQuery: - type: boolean - description: | - Whether to split compound words in the query into their building blocks. - - For more information, see [Word segmentation](https://www.algolia.com/doc/guides/managing-results/optimize-search-results/handling-natural-languages-nlp/in-depth/language-specific-configurations/#splitting-compound-words). - Word segmentation is supported for these languages: German, Dutch, Finnish, Swedish, and Norwegian. - 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). - default: true - x-categories: - - Languages - enableRules: - type: boolean - description: Whether to enable rules. - default: true - x-categories: - - Rules - ruleContexts: - type: array - items: - type: string - description: | - Assigns a rule context to the search query. - - [Rule contexts](https://www.algolia.com/doc/guides/managing-results/rules/rules-overview/how-to/customize-search-results-by-platform/#whats-a-context) are strings that you can use to trigger matching rules. - default: [] - example: [mobile] - x-categories: - - Rules - enablePersonalization: - type: boolean - description: Whether to enable Personalization. - default: false - x-categories: - - Personalization - personalizationImpact: - type: integer - description: | - Impact that Personalization should have on this search. - - The higher this value is, the more Personalization determines the ranking compared to other factors. - For more information, see [Understanding Personalization impact](https://www.algolia.com/doc/guides/personalization/personalizing-results/in-depth/configuring-personalization/#understanding-personalization-impact). - default: 100 - minimum: 0 - maximum: 100 - x-categories: - - Personalization - queryType: - $ref: '../../../common/schemas/IndexSettings.yml#/queryType' - removeWordsIfNoResults: - $ref: '../../../common/schemas/IndexSettings.yml#/removeWordsIfNoResults' - advancedSyntax: - type: boolean - description: | - Whether to support phrase matching and excluding words from search queries. - - Use the `advancedSyntaxFeatures` parameter to control which feature is supported. - default: false - x-categories: - - Query strategy - optionalWords: - $ref: '../../../common/schemas/IndexSettings.yml#/optionalWords' - disableExactOnAttributes: - type: array - items: - type: string - example: - - description - description: | - Searchable attributes for which you want to [turn off the Exact ranking criterion](https://www.algolia.com/doc/guides/managing-results/optimize-search-results/override-search-engine-defaults/in-depth/adjust-exact-settings/#turn-off-exact-for-some-attributes). - Attribute names are case-sensitive. - - This can be useful for attributes with long values, where the likelihood of an exact match is high, - such as product descriptions. - Turning off the Exact ranking criterion for these attributes favors exact matching on other attributes. - This reduces the impact of individual attributes with a lot of content on ranking. - default: [] - x-categories: - - Query strategy - exactOnSingleWordQuery: - $ref: '../../../common/schemas/IndexSettings.yml#/exactOnSingleWordQuery' - alternativesAsExact: - type: array - items: - $ref: '../../../common/schemas/IndexSettings.yml#/alternativesAsExact' - description: | - Determine which plurals and synonyms should be considered an exact matches. - - By default, Algolia treats singular and plural forms of a word, and single-word synonyms, as [exact](https://www.algolia.com/doc/guides/managing-results/relevance-overview/in-depth/ranking-criteria/#exact) matches when searching. - For example: - - - "swimsuit" and "swimsuits" are treated the same - - "swimsuit" and "swimwear" are treated the same (if they are [synonyms](https://www.algolia.com/doc/guides/managing-results/optimize-search-results/adding-synonyms/#regular-synonyms)). - - - `ignorePlurals`. - Plurals and similar declensions added by the `ignorePlurals` setting are considered exact matches. - - - `singleWordSynonym`. - Single-word synonyms, such as "NY" = "NYC", are considered exact matches. - - - `multiWordsSynonym`. - Multi-word synonyms, such as "NY" = "New York", are considered exact matches. - default: [ignorePlurals, singleWordSynonym] - x-categories: - - Query strategy - advancedSyntaxFeatures: - type: array - items: - $ref: '../../../common/schemas/IndexSettings.yml#/advancedSyntaxFeatures' - description: | - Advanced search syntax features you want to support. - - - `exactPhrase`. - Phrases in quotes must match exactly. - For example, `sparkly blue "iPhone case"` only returns records with the exact string "iPhone case". - - - `excludeWords`. - Query words prefixed with a `-` must not occur in a record. - For example, `search -engine` matches records that contain "search" but not "engine". - - This setting only has an effect if `advancedSyntax` is true. - default: [exactPhrase, excludeWords] - x-categories: - - Query strategy - distinct: - $ref: '../../../common/schemas/IndexSettings.yml#/distinct' - getRankingInfo: - type: boolean - description: Whether the search response should include detailed ranking information. - clickAnalytics: - type: boolean - description: | - Whether to include a `queryID` attribute in the response. - - The query ID is a unique identifier for a search query and is required for tracking [click and conversion events](https://www.algolia.com/guides/sending-events/getting-started/). - default: false - x-categories: - - Analytics - analytics: - type: boolean - description: Whether this search will be included in Analytics. - default: true - x-categories: - - Analytics - analyticsTags: - type: array - items: - type: string - description: Tags to apply to the query for [segmenting analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments/). - default: [] - x-categories: - - Analytics - synonyms: - type: boolean - description: Whether to take into account an index's synonyms for this search. - default: true - x-categories: - - Advanced - replaceSynonymsInHighlight: - type: boolean - description: | - Whether to replace a highlighted word with the matched synonym. - - By default, the original words are highlighted even if a synonym matches. - For example, with `home` as a synonym for `house` and a search for `home`, - records matching either "home" or "house" are included in the search results, - and either "home" or "house" are highlighted. - - With `replaceSynonymsInHighlight` set to `true`, a search for `home` still matches the same records, - but all occurrences of "house" are replaced by "home" in the highlighted response. - default: false - x-categories: - - Highlighting and Snippeting - minProximity: - type: integer - minimum: 1 - maximum: 7 - description: | - Minimum proximity score for two matching words. - - This adjusts the [Proximity ranking criterion](https://www.algolia.com/doc/guides/managing-results/relevance-overview/in-depth/ranking-criteria/#proximity) - by equally scoring matches that are farther apart. - - For example, if `minProximity` is 2, neighboring matches and matches with one word between them would have the same score. - default: 1 - x-categories: - - Advanced - responseFields: - type: array - items: - type: string - description: | - Properties to include in the API response of `search` and `browse` requests. - - By default, all response properties are included. - To reduce the response size, you can select, which attributes should be included. - - You can't exclude these properties: - `message`, `warning`, `cursor`, `serverUsed`, `indexUsed`, - `abTestVariantID`, `parsedQuery`, or any property triggered by the `getRankingInfo` parameter. - - Don't exclude properties that you might need in your search UI. - default: ['*'] - x-categories: - - Advanced - maxFacetHits: - $ref: '../../../common/schemas/IndexSettings.yml#/maxFacetHits' - percentileComputation: - type: boolean - description: Whether to include this search when calculating processing-time percentiles. - default: true - x-categories: - - Advanced - attributeCriteriaComputedByMinProximity: - type: boolean - description: | - Whether the best matching attribute should be determined by minimum proximity. - - This setting only affects ranking if the Attribute ranking criterion comes before Proximity in the `ranking` setting. - If true, the best matching attribute is selected based on the minimum proximity of multiple matches. - Otherwise, the best matching attribute is determined by the order in the `searchableAttributes` setting. - default: false - x-categories: - - Advanced - enableABTest: - type: boolean - description: Whether to enable A/B testing for this search. - default: true - x-categories: - - Advanced - enableReRanking: - type: boolean - description: | - Whether this search will use [Dynamic Re-Ranking](https://www.algolia.com/doc/guides/algolia-ai/re-ranking/). - - This setting only has an effect if you activated Dynamic Re-Ranking for this index in the Algolia dashboard. - default: true - x-categories: - - Filtering + - Filtering \ No newline at end of file diff --git a/specs/composition-full/common/schemas/Composition.yml b/specs/composition-full/common/schemas/components/Composition.yml similarity index 76% rename from specs/composition-full/common/schemas/Composition.yml rename to specs/composition-full/common/schemas/components/Composition.yml index dde568893e3..d246be22452 100644 --- a/specs/composition-full/common/schemas/Composition.yml +++ b/specs/composition-full/common/schemas/components/Composition.yml @@ -3,7 +3,7 @@ composition: additionalProperties: false properties: objectID: - $ref: '../../../common/parameters.yml#/objectID' + $ref: '#/objectID' name: type: string description: Composition name. @@ -17,4 +17,9 @@ composition: required: - objectID - behavior - - name \ No newline at end of file + - name + +objectID: + type: string + example: 'my_composition_object_id' + description: Composition unique identifier. \ No newline at end of file diff --git a/specs/composition-full/common/schemas/CompositionBehavior.yml b/specs/composition-full/common/schemas/components/CompositionBehavior.yml similarity index 93% rename from specs/composition-full/common/schemas/CompositionBehavior.yml rename to specs/composition-full/common/schemas/components/CompositionBehavior.yml index 0ed7d2bd923..a894dd3567d 100644 --- a/specs/composition-full/common/schemas/CompositionBehavior.yml +++ b/specs/composition-full/common/schemas/components/CompositionBehavior.yml @@ -27,7 +27,7 @@ compositionBehavior: description: Composition Main Index name. example: Products params: - $ref: './SearchParams.yml#/mainInjectionQueryParameters' + $ref: './Injection.yml#/mainInjectionQueryParameters' required: - index required: @@ -68,7 +68,7 @@ injectedItem: description: Composition Main Index name. example: Products params: - $ref: './SearchParams.yml#/injectedItemsQueryParameters' + $ref: './Injection.yml#/injectedItemsQueryParameters' required: - index required: diff --git a/specs/composition-full/common/schemas/CompositionRule.yml b/specs/composition-full/common/schemas/components/CompositionRule.yml similarity index 93% rename from specs/composition-full/common/schemas/CompositionRule.yml rename to specs/composition-full/common/schemas/components/CompositionRule.yml index 398009626b7..797495ec3fd 100644 --- a/specs/composition-full/common/schemas/CompositionRule.yml +++ b/specs/composition-full/common/schemas/components/CompositionRule.yml @@ -3,7 +3,7 @@ compositionRule: additionalProperties: false properties: objectID: - $ref: '../../../common/parameters.yml#/objectID' + $ref: '../../../../common/parameters.yml#/objectID' conditions: type: array minItems: 0 @@ -33,7 +33,7 @@ compositionRule: type: array description: Time periods when the rule is active. items: - $ref: '../../../common/schemas/Rule.yml#/timeRange' + $ref: '../../../../common/schemas/Rule.yml#/timeRange' required: - objectID - conditions @@ -55,7 +55,7 @@ condition: anchoring: $ref: '#/anchoring' context: - $ref: '../../../common/schemas/Rule.yml#/context' + $ref: '../../../../common/schemas/Rule.yml#/context' filters: type: string description: | diff --git a/specs/composition-full/common/schemas/components/Injection.yml b/specs/composition-full/common/schemas/components/Injection.yml new file mode 100644 index 00000000000..15819b0b382 --- /dev/null +++ b/specs/composition-full/common/schemas/components/Injection.yml @@ -0,0 +1,953 @@ +mainInjectionQueryParameters: + title: Composition Main Injection Query parameters as object + type: object + additionalProperties: false + properties: + attributesToRetrieve: + type: array + items: + type: string + example: + - author + - title + - content + description: | + Attributes to include in the API response. + + To reduce the size of your response, you can retrieve only some of the attributes. + Attribute names are case-sensitive. + + - `*` retrieves all attributes, except attributes included in the `customRanking` and `unretrievableAttributes` settings. + - To retrieve all attributes except a specific one, prefix the attribute with a dash and combine it with the `*`: `["*", "-ATTRIBUTE"]`. + - The `objectID` attribute is always included. + default: ['*'] + x-categories: + - Attributes + restrictSearchableAttributes: + type: array + items: + type: string + example: [title, author] + description: | + Restricts a search to a subset of your searchable attributes. + Attribute names are case-sensitive. + default: [] + x-categories: + - Filtering + filters: + $ref: '../../../../common/schemas/SearchParams.yml#/filters' + facetFilters: + $ref: '../../../../common/schemas/SearchParams.yml#/facetFilters' + optionalFilters: + $ref: '../../../../common/schemas/SearchParams.yml#/optionalFilters' + numericFilters: + $ref: '../../../../common/schemas/SearchParams.yml#/numericFilters' + sumOrFiltersScores: + type: boolean + description: | + Whether to sum all filter scores. + + If true, all filter scores are summed. + Otherwise, the maximum filter score is kept. + For more information, see [filter scores](https://www.algolia.com/doc/guides/managing-results/refine-results/filtering/in-depth/filter-scoring/#accumulating-scores-with-sumorfiltersscores). + default: false + x-categories: + - Filtering + facets: + type: array + items: + type: string + description: | + Facets for which to retrieve facet values that match the search criteria and the number of matching facet values. + + To retrieve all facets, use the wildcard character `*`. + For more information, see [facets](https://www.algolia.com/doc/guides/managing-results/refine-results/faceting/#contextual-facet-values-and-counts). + default: [] + example: ['*'] + x-categories: + - Faceting + maxValuesPerFacet: + type: integer + description: Maximum number of facet values to return for each facet. + default: 100 + maximum: 1000 + x-categories: + - Faceting + facetingAfterDistinct: + type: boolean + description: | + Whether faceting should be applied after deduplication with `distinct`. + + This leads to accurate facet counts when using faceting in combination with `distinct`. + It's usually better to use `afterDistinct` modifiers in the `attributesForFaceting` setting, + as `facetingAfterDistinct` only computes correct facet counts if all records have the same facet values for the `attributeForDistinct`. + default: false + x-categories: + - Faceting + sortFacetValuesBy: + type: string + description: | + Order in which to retrieve facet values. + + - `count`. + Facet values are retrieved by decreasing count. + The count is the number of matching records containing this facet value. + + - `alpha`. + Retrieve facet values alphabetically. + + This setting doesn't influence how facet values are displayed in your UI (see `renderingContent`). + For more information, see [facet value display](https://www.algolia.com/doc/guides/building-search-ui/ui-and-ux-patterns/facet-display/js/). + default: count + x-categories: + - Faceting + attributesToHighlight: + type: array + items: + type: string + example: [author, title, content] + description: | + Attributes to highlight. + + By default, all searchable attributes are highlighted. + Use `*` to highlight all attributes or use an empty array `[]` to turn off highlighting. + Attribute names are case-sensitive. + + With highlighting, strings that match the search query are surrounded by HTML tags defined by `highlightPreTag` and `highlightPostTag`. + You can use this to visually highlight matching parts of a search query in your UI. + + For more information, see [Highlighting and snippeting](https://www.algolia.com/doc/guides/building-search-ui/ui-and-ux-patterns/highlighting-snippeting/js/). + x-categories: + - Highlighting and Snippeting + attributesToSnippet: + type: array + items: + type: string + example: + - content:80 + - description + description: | + Attributes for which to enable snippets. + Attribute names are case-sensitive. + + Snippets provide additional context to matched words. + If you enable snippets, they include 10 words, including the matched word. + The matched word will also be wrapped by HTML tags for highlighting. + You can adjust the number of words with the following notation: `ATTRIBUTE:NUMBER`, + where `NUMBER` is the number of words to be extracted. + default: [] + x-categories: + - Highlighting and Snippeting + highlightPreTag: + type: string + description: HTML tag to insert before the highlighted parts in all highlighted results and snippets. + default: + x-categories: + - Highlighting and Snippeting + highlightPostTag: + type: string + description: HTML tag to insert after the highlighted parts in all highlighted results and snippets. + default: + x-categories: + - Highlighting and Snippeting + snippetEllipsisText: + type: string + description: String used as an ellipsis indicator when a snippet is truncated. + default: … + x-categories: + - Highlighting and Snippeting + restrictHighlightAndSnippetArrays: + type: boolean + description: | + Whether to restrict highlighting and snippeting to items that at least partially matched the search query. + By default, all items are highlighted and snippeted. + default: false + x-categories: + - Highlighting and Snippeting + hitsPerPage: + $ref: '../../../../common/schemas/IndexSettings.yml#/hitsPerPage' + length: + type: integer + description: Number of hits to retrieve (used in combination with `offset`). + minimum: 0 + maximum: 1000 + x-categories: + - Pagination + minWordSizefor1Typo: + type: integer + description: Minimum number of characters a word in the search query must contain to accept matches with [one typo](https://www.algolia.com/doc/guides/managing-results/optimize-search-results/typo-tolerance/in-depth/configuring-typo-tolerance/#configuring-word-length-for-typos). + default: 4 + x-categories: + - Typos + minWordSizefor2Typos: + type: integer + description: Minimum number of characters a word in the search query must contain to accept matches with [two typos](https://www.algolia.com/doc/guides/managing-results/optimize-search-results/typo-tolerance/in-depth/configuring-typo-tolerance/#configuring-word-length-for-typos). + default: 8 + x-categories: + - Typos + typoTolerance: + $ref: '../../../../common/schemas/IndexSettings.yml#/typoTolerance' + allowTyposOnNumericTokens: + type: boolean + description: | + Whether to allow typos on numbers in the search query. + + Turn off this setting to reduce the number of irrelevant matches + when searching in large sets of similar numbers. + default: true + x-categories: + - Typos + disableTypoToleranceOnAttributes: + type: array + items: + type: string + example: + - sku + description: | + Attributes for which you want to turn off [typo tolerance](https://www.algolia.com/doc/guides/managing-results/optimize-search-results/typo-tolerance/). + Attribute names are case-sensitive. + + Returning only exact matches can help when: + + - [Searching in hyphenated attributes](https://www.algolia.com/doc/guides/managing-results/optimize-search-results/typo-tolerance/how-to/how-to-search-in-hyphenated-attributes/). + - Reducing the number of matches when you have too many. + This can happen with attributes that are long blocks of text, such as product descriptions. + + Consider alternatives such as `disableTypoToleranceOnWords` or adding synonyms if your attributes have intentional unusual spellings that might look like typos. + default: [] + x-categories: + - Typos + ignorePlurals: + $ref: '../../../../common/schemas/IndexSettings.yml#/ignorePlurals' + removeStopWords: + $ref: '../../../../common/schemas/IndexSettings.yml#/removeStopWords' + queryLanguages: + type: array + items: + $ref: '../../../../common/schemas/IndexSettings.yml#/supportedLanguage' + example: + - es + description: | + Languages for language-specific query processing steps such as plurals, stop-word removal, and word-detection dictionaries. + + This setting sets a default list of languages used by the `removeStopWords` and `ignorePlurals` settings. + This setting also sets a dictionary for word detection in the logogram-based [CJK](https://www.algolia.com/doc/guides/managing-results/optimize-search-results/handling-natural-languages-nlp/in-depth/normalization/#normalization-for-logogram-based-languages-cjk) languages. + To support this, you must place the CJK language **first**. + + **You should always specify a query 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/). + default: [] + x-categories: + - Languages + naturalLanguages: + type: array + items: + $ref: '../../../../common/schemas/IndexSettings.yml#/supportedLanguage' + description: | + ISO language codes that adjust settings that are useful for processing natural language queries (as opposed to keyword searches): + + - Sets `removeStopWords` and `ignorePlurals` to the list of provided languages. + - Sets `removeWordsIfNoResults` to `allOptional`. + - Adds a `natural_language` attribute to `ruleContexts` and `analyticsTags`. + default: [] + x-categories: + - Languages + decompoundQuery: + type: boolean + description: | + Whether to split compound words in the query into their building blocks. + + For more information, see [Word segmentation](https://www.algolia.com/doc/guides/managing-results/optimize-search-results/handling-natural-languages-nlp/in-depth/language-specific-configurations/#splitting-compound-words). + Word segmentation is supported for these languages: German, Dutch, Finnish, Swedish, and Norwegian. + 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). + default: true + x-categories: + - Languages + enableRules: + type: boolean + description: Whether to enable rules. + default: true + x-categories: + - Rules + ruleContexts: + type: array + items: + type: string + description: | + Assigns a rule context to the search query. + + [Rule contexts](https://www.algolia.com/doc/guides/managing-results/rules/rules-overview/how-to/customize-search-results-by-platform/#whats-a-context) are strings that you can use to trigger matching rules. + default: [] + example: [mobile] + x-categories: + - Rules + enablePersonalization: + type: boolean + description: Whether to enable Personalization. + default: false + x-categories: + - Personalization + personalizationImpact: + type: integer + description: | + Impact that Personalization should have on this search. + + The higher this value is, the more Personalization determines the ranking compared to other factors. + For more information, see [Understanding Personalization impact](https://www.algolia.com/doc/guides/personalization/personalizing-results/in-depth/configuring-personalization/#understanding-personalization-impact). + default: 100 + minimum: 0 + maximum: 100 + x-categories: + - Personalization + queryType: + $ref: '../../../../common/schemas/IndexSettings.yml#/queryType' + removeWordsIfNoResults: + $ref: '../../../../common/schemas/IndexSettings.yml#/removeWordsIfNoResults' + advancedSyntax: + type: boolean + description: | + Whether to support phrase matching and excluding words from search queries. + + Use the `advancedSyntaxFeatures` parameter to control which feature is supported. + default: false + x-categories: + - Query strategy + optionalWords: + type: array + items: + type: string + example: + - blue + - iphone case + description: | + Words that should be considered optional when found in the query. + + By default, records must match all words in the search query to be included in the search results. + Adding optional words can help to increase the number of search results by running an additional search query that doesn't include the optional words. + For example, if the search query is "action video" and "video" is an optional word, + the search engine runs two queries. One for "action video" and one for "action". + Records that match all words are ranked higher. + + For a search query with 4 or more words **and** all its words are optional, + the number of matched words required for a record to be included in the search results increases for every 1,000 records: + + - If `optionalWords` has less than 10 words, the required number of matched words increases by 1: + results 1 to 1,000 require 1 matched word, results 1,001 to 2000 need 2 matched words. + - If `optionalWords` has 10 or more words, the number of required matched words increases by the number of optional words divided by 5 (rounded down). + For example, with 18 optional words: results 1 to 1,000 require 1 matched word, results 1,001 to 2000 need 4 matched words. + + For more information, see [Optional words](https://www.algolia.com/doc/guides/managing-results/optimize-search-results/empty-or-insufficient-results/#creating-a-list-of-optional-words). + default: [] + x-categories: + - Query strategy + disableExactOnAttributes: + type: array + items: + type: string + example: + - description + description: | + Searchable attributes for which you want to [turn off the Exact ranking criterion](https://www.algolia.com/doc/guides/managing-results/optimize-search-results/override-search-engine-defaults/in-depth/adjust-exact-settings/#turn-off-exact-for-some-attributes). + Attribute names are case-sensitive. + + This can be useful for attributes with long values, where the likelihood of an exact match is high, + such as product descriptions. + Turning off the Exact ranking criterion for these attributes favors exact matching on other attributes. + This reduces the impact of individual attributes with a lot of content on ranking. + default: [] + x-categories: + - Query strategy + exactOnSingleWordQuery: + $ref: '../../../../common/schemas/IndexSettings.yml#/exactOnSingleWordQuery' + alternativesAsExact: + type: array + items: + $ref: '../../../../common/schemas/IndexSettings.yml#/alternativesAsExact' + description: | + Determine which plurals and synonyms should be considered an exact matches. + + By default, Algolia treats singular and plural forms of a word, and single-word synonyms, as [exact](https://www.algolia.com/doc/guides/managing-results/relevance-overview/in-depth/ranking-criteria/#exact) matches when searching. + For example: + + - "swimsuit" and "swimsuits" are treated the same + - "swimsuit" and "swimwear" are treated the same (if they are [synonyms](https://www.algolia.com/doc/guides/managing-results/optimize-search-results/adding-synonyms/#regular-synonyms)). + + - `ignorePlurals`. + Plurals and similar declensions added by the `ignorePlurals` setting are considered exact matches. + + - `singleWordSynonym`. + Single-word synonyms, such as "NY" = "NYC", are considered exact matches. + + - `multiWordsSynonym`. + Multi-word synonyms, such as "NY" = "New York", are considered exact matches. + default: [ignorePlurals, singleWordSynonym] + x-categories: + - Query strategy + advancedSyntaxFeatures: + type: array + items: + $ref: '../../../../common/schemas/IndexSettings.yml#/advancedSyntaxFeatures' + description: | + Advanced search syntax features you want to support. + + - `exactPhrase`. + Phrases in quotes must match exactly. + For example, `sparkly blue "iPhone case"` only returns records with the exact string "iPhone case". + + - `excludeWords`. + Query words prefixed with a `-` must not occur in a record. + For example, `search -engine` matches records that contain "search" but not "engine". + + This setting only has an effect if `advancedSyntax` is true. + default: [exactPhrase, excludeWords] + x-categories: + - Query strategy + distinct: + $ref: '../../../../common/schemas/IndexSettings.yml#/distinct' + getRankingInfo: + type: boolean + description: Whether the search response should include detailed ranking information. + clickAnalytics: + type: boolean + description: | + Whether to include a `queryID` attribute in the response. + + The query ID is a unique identifier for a search query and is required for tracking [click and conversion events](https://www.algolia.com/guides/sending-events/getting-started/). + default: false + x-categories: + - Analytics + analytics: + type: boolean + description: Whether this search will be included in Analytics. + default: true + x-categories: + - Analytics + analyticsTags: + type: array + items: + type: string + description: Tags to apply to the query for [segmenting analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments/). + default: [] + x-categories: + - Analytics + synonyms: + type: boolean + description: Whether to take into account an index's synonyms for this search. + default: true + x-categories: + - Advanced + replaceSynonymsInHighlight: + type: boolean + description: | + Whether to replace a highlighted word with the matched synonym. + + By default, the original words are highlighted even if a synonym matches. + For example, with `home` as a synonym for `house` and a search for `home`, + records matching either "home" or "house" are included in the search results, + and either "home" or "house" are highlighted. + + With `replaceSynonymsInHighlight` set to `true`, a search for `home` still matches the same records, + but all occurrences of "house" are replaced by "home" in the highlighted response. + default: false + x-categories: + - Highlighting and Snippeting + minProximity: + type: integer + minimum: 1 + maximum: 7 + description: | + Minimum proximity score for two matching words. + + This adjusts the [Proximity ranking criterion](https://www.algolia.com/doc/guides/managing-results/relevance-overview/in-depth/ranking-criteria/#proximity) + by equally scoring matches that are farther apart. + + For example, if `minProximity` is 2, neighboring matches and matches with one word between them would have the same score. + default: 1 + x-categories: + - Advanced + responseFields: + type: array + items: + type: string + description: | + Properties to include in the API response of `search` and `browse` requests. + + By default, all response properties are included. + To reduce the response size, you can select, which attributes should be included. + + You can't exclude these properties: + `message`, `warning`, `cursor`, `serverUsed`, `indexUsed`, + `abTestVariantID`, `parsedQuery`, or any property triggered by the `getRankingInfo` parameter. + + Don't exclude properties that you might need in your search UI. + default: ['*'] + x-categories: + - Advanced + maxFacetHits: + $ref: '../../../../common/schemas/IndexSettings.yml#/maxFacetHits' + percentileComputation: + type: boolean + description: Whether to include this search when calculating processing-time percentiles. + default: true + x-categories: + - Advanced + attributeCriteriaComputedByMinProximity: + type: boolean + description: | + Whether the best matching attribute should be determined by minimum proximity. + + This setting only affects ranking if the Attribute ranking criterion comes before Proximity in the `ranking` setting. + If true, the best matching attribute is selected based on the minimum proximity of multiple matches. + Otherwise, the best matching attribute is determined by the order in the `searchableAttributes` setting. + default: false + x-categories: + - Advanced + enableABTest: + type: boolean + description: Whether to enable A/B testing for this search. + default: true + x-categories: + - Advanced + enableReRanking: + type: boolean + description: | + Whether this search will use [Dynamic Re-Ranking](https://www.algolia.com/doc/guides/algolia-ai/re-ranking/). + + This setting only has an effect if you activated Dynamic Re-Ranking for this index in the Algolia dashboard. + default: true + x-categories: + - Filtering + +injectedItemsQueryParameters: + title: Composition injectedItems Query parameters as object + type: object + additionalProperties: false + properties: + attributesToRetrieve: + type: array + items: + type: string + example: + - author + - title + - content + description: | + Attributes to include in the API response. + + To reduce the size of your response, you can retrieve only some of the attributes. + Attribute names are case-sensitive. + + - `*` retrieves all attributes, except attributes included in the `customRanking` and `unretrievableAttributes` settings. + - To retrieve all attributes except a specific one, prefix the attribute with a dash and combine it with the `*`: `["*", "-ATTRIBUTE"]`. + - The `objectID` attribute is always included. + default: ['*'] + x-categories: + - Attributes + restrictSearchableAttributes: + type: array + items: + type: string + example: [title, author] + description: | + Restricts a search to a subset of your searchable attributes. + Attribute names are case-sensitive. + default: [] + x-categories: + - Filtering + filters: + $ref: '../../../../common/schemas/SearchParams.yml#/filters' + facetFilters: + $ref: '../../../../common/schemas/SearchParams.yml#/facetFilters' + optionalFilters: + $ref: '../../../../common/schemas/SearchParams.yml#/optionalFilters' + numericFilters: + $ref: '../../../../common/schemas/SearchParams.yml#/numericFilters' + attributesToHighlight: + type: array + items: + type: string + example: [author, title, content] + description: | + Attributes to highlight. + + By default, all searchable attributes are highlighted. + Use `*` to highlight all attributes or use an empty array `[]` to turn off highlighting. + Attribute names are case-sensitive. + + With highlighting, strings that match the search query are surrounded by HTML tags defined by `highlightPreTag` and `highlightPostTag`. + You can use this to visually highlight matching parts of a search query in your UI. + + For more information, see [Highlighting and snippeting](https://www.algolia.com/doc/guides/building-search-ui/ui-and-ux-patterns/highlighting-snippeting/js/). + x-categories: + - Highlighting and Snippeting + attributesToSnippet: + type: array + items: + type: string + example: + - content:80 + - description + description: | + Attributes for which to enable snippets. + Attribute names are case-sensitive. + + Snippets provide additional context to matched words. + If you enable snippets, they include 10 words, including the matched word. + The matched word will also be wrapped by HTML tags for highlighting. + You can adjust the number of words with the following notation: `ATTRIBUTE:NUMBER`, + where `NUMBER` is the number of words to be extracted. + default: [] + x-categories: + - Highlighting and Snippeting + highlightPreTag: + type: string + description: HTML tag to insert before the highlighted parts in all highlighted results and snippets. + default: + x-categories: + - Highlighting and Snippeting + highlightPostTag: + type: string + description: HTML tag to insert after the highlighted parts in all highlighted results and snippets. + default: + x-categories: + - Highlighting and Snippeting + snippetEllipsisText: + type: string + description: String used as an ellipsis indicator when a snippet is truncated. + default: … + x-categories: + - Highlighting and Snippeting + restrictHighlightAndSnippetArrays: + type: boolean + description: | + Whether to restrict highlighting and snippeting to items that at least partially matched the search query. + By default, all items are highlighted and snippeted. + default: false + x-categories: + - Highlighting and Snippeting + minWordSizefor1Typo: + type: integer + description: Minimum number of characters a word in the search query must contain to accept matches with [one typo](https://www.algolia.com/doc/guides/managing-results/optimize-search-results/typo-tolerance/in-depth/configuring-typo-tolerance/#configuring-word-length-for-typos). + default: 4 + x-categories: + - Typos + minWordSizefor2Typos: + type: integer + description: Minimum number of characters a word in the search query must contain to accept matches with [two typos](https://www.algolia.com/doc/guides/managing-results/optimize-search-results/typo-tolerance/in-depth/configuring-typo-tolerance/#configuring-word-length-for-typos). + default: 8 + x-categories: + - Typos + typoTolerance: + $ref: '../../../../common/schemas/IndexSettings.yml#/typoTolerance' + allowTyposOnNumericTokens: + type: boolean + description: | + Whether to allow typos on numbers in the search query. + + Turn off this setting to reduce the number of irrelevant matches + when searching in large sets of similar numbers. + default: true + x-categories: + - Typos + disableTypoToleranceOnAttributes: + type: array + items: + type: string + example: + - sku + description: | + Attributes for which you want to turn off [typo tolerance](https://www.algolia.com/doc/guides/managing-results/optimize-search-results/typo-tolerance/). + Attribute names are case-sensitive. + + Returning only exact matches can help when: + + - [Searching in hyphenated attributes](https://www.algolia.com/doc/guides/managing-results/optimize-search-results/typo-tolerance/how-to/how-to-search-in-hyphenated-attributes/). + - Reducing the number of matches when you have too many. + This can happen with attributes that are long blocks of text, such as product descriptions. + + Consider alternatives such as `disableTypoToleranceOnWords` or adding synonyms if your attributes have intentional unusual spellings that might look like typos. + default: [] + x-categories: + - Typos + ignorePlurals: + $ref: '../../../../common/schemas/IndexSettings.yml#/ignorePlurals' + removeStopWords: + $ref: '../../../../common/schemas/IndexSettings.yml#/removeStopWords' + queryLanguages: + type: array + items: + $ref: '../../../../common/schemas/IndexSettings.yml#/supportedLanguage' + example: + - es + description: | + Languages for language-specific query processing steps such as plurals, stop-word removal, and word-detection dictionaries. + + This setting sets a default list of languages used by the `removeStopWords` and `ignorePlurals` settings. + This setting also sets a dictionary for word detection in the logogram-based [CJK](https://www.algolia.com/doc/guides/managing-results/optimize-search-results/handling-natural-languages-nlp/in-depth/normalization/#normalization-for-logogram-based-languages-cjk) languages. + To support this, you must place the CJK language **first**. + + **You should always specify a query 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/). + default: [] + x-categories: + - Languages + naturalLanguages: + type: array + items: + $ref: '../../../../common/schemas/IndexSettings.yml#/supportedLanguage' + description: | + ISO language codes that adjust settings that are useful for processing natural language queries (as opposed to keyword searches): + + - Sets `removeStopWords` and `ignorePlurals` to the list of provided languages. + - Sets `removeWordsIfNoResults` to `allOptional`. + - Adds a `natural_language` attribute to `ruleContexts` and `analyticsTags`. + default: [] + x-categories: + - Languages + decompoundQuery: + type: boolean + description: | + Whether to split compound words in the query into their building blocks. + + For more information, see [Word segmentation](https://www.algolia.com/doc/guides/managing-results/optimize-search-results/handling-natural-languages-nlp/in-depth/language-specific-configurations/#splitting-compound-words). + Word segmentation is supported for these languages: German, Dutch, Finnish, Swedish, and Norwegian. + 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). + default: true + x-categories: + - Languages + enableRules: + type: boolean + description: Whether to enable rules. + default: true + x-categories: + - Rules + ruleContexts: + type: array + items: + type: string + description: | + Assigns a rule context to the search query. + + [Rule contexts](https://www.algolia.com/doc/guides/managing-results/rules/rules-overview/how-to/customize-search-results-by-platform/#whats-a-context) are strings that you can use to trigger matching rules. + default: [] + example: [mobile] + x-categories: + - Rules + enablePersonalization: + type: boolean + description: Whether to enable Personalization. + default: false + x-categories: + - Personalization + personalizationImpact: + type: integer + description: | + Impact that Personalization should have on this search. + + The higher this value is, the more Personalization determines the ranking compared to other factors. + For more information, see [Understanding Personalization impact](https://www.algolia.com/doc/guides/personalization/personalizing-results/in-depth/configuring-personalization/#understanding-personalization-impact). + default: 100 + minimum: 0 + maximum: 100 + x-categories: + - Personalization + queryType: + $ref: '../../../../common/schemas/IndexSettings.yml#/queryType' + removeWordsIfNoResults: + $ref: '../../../../common/schemas/IndexSettings.yml#/removeWordsIfNoResults' + advancedSyntax: + type: boolean + description: | + Whether to support phrase matching and excluding words from search queries. + + Use the `advancedSyntaxFeatures` parameter to control which feature is supported. + default: false + x-categories: + - Query strategy + optionalWords: + $ref: '../../../../common/schemas/IndexSettings.yml#/optionalWords' + disableExactOnAttributes: + type: array + items: + type: string + example: + - description + description: | + Searchable attributes for which you want to [turn off the Exact ranking criterion](https://www.algolia.com/doc/guides/managing-results/optimize-search-results/override-search-engine-defaults/in-depth/adjust-exact-settings/#turn-off-exact-for-some-attributes). + Attribute names are case-sensitive. + + This can be useful for attributes with long values, where the likelihood of an exact match is high, + such as product descriptions. + Turning off the Exact ranking criterion for these attributes favors exact matching on other attributes. + This reduces the impact of individual attributes with a lot of content on ranking. + default: [] + x-categories: + - Query strategy + exactOnSingleWordQuery: + $ref: '../../../../common/schemas/IndexSettings.yml#/exactOnSingleWordQuery' + alternativesAsExact: + type: array + items: + $ref: '../../../../common/schemas/IndexSettings.yml#/alternativesAsExact' + description: | + Determine which plurals and synonyms should be considered an exact matches. + + By default, Algolia treats singular and plural forms of a word, and single-word synonyms, as [exact](https://www.algolia.com/doc/guides/managing-results/relevance-overview/in-depth/ranking-criteria/#exact) matches when searching. + For example: + + - "swimsuit" and "swimsuits" are treated the same + - "swimsuit" and "swimwear" are treated the same (if they are [synonyms](https://www.algolia.com/doc/guides/managing-results/optimize-search-results/adding-synonyms/#regular-synonyms)). + + - `ignorePlurals`. + Plurals and similar declensions added by the `ignorePlurals` setting are considered exact matches. + + - `singleWordSynonym`. + Single-word synonyms, such as "NY" = "NYC", are considered exact matches. + + - `multiWordsSynonym`. + Multi-word synonyms, such as "NY" = "New York", are considered exact matches. + default: [ignorePlurals, singleWordSynonym] + x-categories: + - Query strategy + advancedSyntaxFeatures: + type: array + items: + $ref: '../../../../common/schemas/IndexSettings.yml#/advancedSyntaxFeatures' + description: | + Advanced search syntax features you want to support. + + - `exactPhrase`. + Phrases in quotes must match exactly. + For example, `sparkly blue "iPhone case"` only returns records with the exact string "iPhone case". + + - `excludeWords`. + Query words prefixed with a `-` must not occur in a record. + For example, `search -engine` matches records that contain "search" but not "engine". + + This setting only has an effect if `advancedSyntax` is true. + default: [exactPhrase, excludeWords] + x-categories: + - Query strategy + distinct: + $ref: '../../../../common/schemas/IndexSettings.yml#/distinct' + getRankingInfo: + type: boolean + description: Whether the search response should include detailed ranking information. + clickAnalytics: + type: boolean + description: | + Whether to include a `queryID` attribute in the response. + + The query ID is a unique identifier for a search query and is required for tracking [click and conversion events](https://www.algolia.com/guides/sending-events/getting-started/). + default: false + x-categories: + - Analytics + analytics: + type: boolean + description: Whether this search will be included in Analytics. + default: true + x-categories: + - Analytics + analyticsTags: + type: array + items: + type: string + description: Tags to apply to the query for [segmenting analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments/). + default: [] + x-categories: + - Analytics + synonyms: + type: boolean + description: Whether to take into account an index's synonyms for this search. + default: true + x-categories: + - Advanced + replaceSynonymsInHighlight: + type: boolean + description: | + Whether to replace a highlighted word with the matched synonym. + + By default, the original words are highlighted even if a synonym matches. + For example, with `home` as a synonym for `house` and a search for `home`, + records matching either "home" or "house" are included in the search results, + and either "home" or "house" are highlighted. + + With `replaceSynonymsInHighlight` set to `true`, a search for `home` still matches the same records, + but all occurrences of "house" are replaced by "home" in the highlighted response. + default: false + x-categories: + - Highlighting and Snippeting + minProximity: + type: integer + minimum: 1 + maximum: 7 + description: | + Minimum proximity score for two matching words. + + This adjusts the [Proximity ranking criterion](https://www.algolia.com/doc/guides/managing-results/relevance-overview/in-depth/ranking-criteria/#proximity) + by equally scoring matches that are farther apart. + + For example, if `minProximity` is 2, neighboring matches and matches with one word between them would have the same score. + default: 1 + x-categories: + - Advanced + responseFields: + type: array + items: + type: string + description: | + Properties to include in the API response of `search` and `browse` requests. + + By default, all response properties are included. + To reduce the response size, you can select, which attributes should be included. + + You can't exclude these properties: + `message`, `warning`, `cursor`, `serverUsed`, `indexUsed`, + `abTestVariantID`, `parsedQuery`, or any property triggered by the `getRankingInfo` parameter. + + Don't exclude properties that you might need in your search UI. + default: ['*'] + x-categories: + - Advanced + maxFacetHits: + $ref: '../../../../common/schemas/IndexSettings.yml#/maxFacetHits' + percentileComputation: + type: boolean + description: Whether to include this search when calculating processing-time percentiles. + default: true + x-categories: + - Advanced + attributeCriteriaComputedByMinProximity: + type: boolean + description: | + Whether the best matching attribute should be determined by minimum proximity. + + This setting only affects ranking if the Attribute ranking criterion comes before Proximity in the `ranking` setting. + If true, the best matching attribute is selected based on the minimum proximity of multiple matches. + Otherwise, the best matching attribute is determined by the order in the `searchableAttributes` setting. + default: false + x-categories: + - Advanced + enableABTest: + type: boolean + description: Whether to enable A/B testing for this search. + default: true + x-categories: + - Advanced + enableReRanking: + type: boolean + description: | + Whether this search will use [Dynamic Re-Ranking](https://www.algolia.com/doc/guides/algolia-ai/re-ranking/). + + This setting only has an effect if you activated Dynamic Re-Ranking for this index in the Algolia dashboard. + default: true + x-categories: + - Filtering diff --git a/specs/composition-full/paths/advanced/getTask.yml b/specs/composition-full/paths/advanced/getTask.yml index 5069d37f7ee..8098fbff468 100644 --- a/specs/composition-full/paths/advanced/getTask.yml +++ b/specs/composition-full/paths/advanced/getTask.yml @@ -12,7 +12,7 @@ get: Checks the status of a given task. summary: Check task status parameters: - - $ref: '../../common/parameters.yml#/compositionID' + - $ref: '../urlParams.yml#/compositionID' - name: taskID in: path description: Unique task identifier. diff --git a/specs/composition-full/paths/objects/objects.yml b/specs/composition-full/paths/objects/objects.yml index c67cb3169d2..c0082dd175a 100644 --- a/specs/composition-full/paths/objects/objects.yml +++ b/specs/composition-full/paths/objects/objects.yml @@ -9,14 +9,14 @@ get: description: | Retrieve a single composition in the current Algolia application. parameters: - - $ref: '../../common/parameters.yml#/compositionID' + - $ref: '../urlParams.yml#/compositionID' responses: '200': description: OK content: application/json: schema: - $ref: '../../common/schemas/Composition.yml#/composition' + $ref: '../../common/schemas/components/Composition.yml#/composition' '400': $ref: '../../../common/responses/BadRequest.yml' '402': diff --git a/specs/composition-full/paths/rules/rule.yml b/specs/composition-full/paths/rules/rule.yml index 69f4d5f4b1f..325fa210186 100644 --- a/specs/composition-full/paths/rules/rule.yml +++ b/specs/composition-full/paths/rules/rule.yml @@ -10,7 +10,7 @@ get: To find the object ID of rules, use the [`search` operation](#tag/Rules/operation/searchRules). parameters: - - $ref: '../../common/parameters.yml#/compositionID' + - $ref: '../urlParams.yml#/compositionID' - $ref: './parameters.yml#/ObjectIDRule' responses: '200': @@ -18,7 +18,7 @@ get: content: application/json: schema: - $ref: '../../common/schemas/CompositionRule.yml#/compositionRule' + $ref: '../../common/schemas/components/CompositionRule.yml#/compositionRule' '400': $ref: '../../../common/responses/BadRequest.yml' '402': diff --git a/specs/composition-full/paths/rules/saveRules.yml b/specs/composition-full/paths/rules/saveRules.yml index c232f698bec..3b9d0c0bc0e 100644 --- a/specs/composition-full/paths/rules/saveRules.yml +++ b/specs/composition-full/paths/rules/saveRules.yml @@ -9,7 +9,7 @@ post: Create or update or delete multiple composition rules. x-codegen-request-body-name: rules parameters: - - $ref: '../../common/parameters.yml#/compositionID' + - $ref: '../urlParams.yml#/compositionID' requestBody: required: true content: diff --git a/specs/composition-full/paths/rules/searchRules.yml b/specs/composition-full/paths/rules/searchRules.yml index eef139f27a6..1e4d8cb85a8 100644 --- a/specs/composition-full/paths/rules/searchRules.yml +++ b/specs/composition-full/paths/rules/searchRules.yml @@ -7,7 +7,7 @@ post: summary: Search for composition rules description: Searches for composition rules in your index. parameters: - - $ref: '../../common/parameters.yml#/compositionID' + - $ref: '../urlParams.yml#/compositionID' requestBody: content: application/json: @@ -20,7 +20,7 @@ post: query: $ref: './parameters.yml#/query' anchoring: - $ref: '../../common/schemas/CompositionRule.yml#/anchoring' + $ref: '../../common/schemas/components/CompositionRule.yml#/anchoring' context: type: string description: Only return composition rules that match the context (exact match). @@ -57,7 +57,7 @@ post: type: array description: Composition rules that matched the search criteria. items: - $ref: '../../common/schemas/CompositionRule.yml#/compositionRule' + $ref: '../../common/schemas/components/CompositionRule.yml#/compositionRule' nbHits: type: integer description: Number of composition rules that matched the search criteria. diff --git a/specs/composition-full/paths/search/search.yml b/specs/composition-full/paths/search/search.yml index 317715ef48a..883d06448c4 100644 --- a/specs/composition-full/paths/search/search.yml +++ b/specs/composition-full/paths/search/search.yml @@ -9,7 +9,7 @@ post: summary: Run a Composition description: Runs a query on a single composition and returns matching results. parameters: - - $ref: '../../common/parameters.yml#/compositionID' + - $ref: '../urlParams.yml#/compositionID' requestBody: required: true content: diff --git a/specs/composition-full/paths/search/searchForFacetValues.yml b/specs/composition-full/paths/search/searchForFacetValues.yml index 191d2ffc8b7..ea16cc43944 100644 --- a/specs/composition-full/paths/search/searchForFacetValues.yml +++ b/specs/composition-full/paths/search/searchForFacetValues.yml @@ -14,7 +14,7 @@ post: You can adjust this with the `sortFacetValueBy` parameter. - Searching for facet values doesn't work if you have **more than 65 searchable facets and searchable attributes combined**. parameters: - - $ref: '../../common/parameters.yml#/compositionID' + - $ref: '../urlParams.yml#/compositionID' - name: facetName description: | Facet attribute in which to search for values. diff --git a/specs/composition-full/common/parameters.yml b/specs/composition-full/paths/urlParams.yml similarity index 50% rename from specs/composition-full/common/parameters.yml rename to specs/composition-full/paths/urlParams.yml index c8a0ba2b889..a7a94f547da 100644 --- a/specs/composition-full/common/parameters.yml +++ b/specs/composition-full/paths/urlParams.yml @@ -4,8 +4,4 @@ compositionID: description: Unique Composition ObjectID. required: true schema: - $ref: '#/compositionObjectID' - -compositionObjectID: - type: string - description: Unique Composition ObjectID. + $ref: '../common/schemas/components/Composition.yml#/objectID' From c6edd9c8d1630456f2cc3010431321fbfe0369e5 Mon Sep 17 00:00:00 2001 From: Clara Muller <5667350+ClaraMuller@users.noreply.github.com> Date: Wed, 16 Jul 2025 10:47:06 +0200 Subject: [PATCH 2/4] refactor(specs): create `composition-full/schemas/requestBodies` directory --- .../common/schemas/components/CompositionRule.yml | 5 +++++ .../common/schemas/{ => requestBodies}/Batch.yml | 0 .../schemas/{ => requestBodies}/BatchCompositionAction.yml | 4 ++-- .../{ => requestBodies}/RulesBatchCompositionAction.yml | 4 ++-- specs/composition-full/paths/objects/multipleBatch.yml | 4 ++-- specs/composition-full/paths/rules/saveRules.yml | 4 ++-- 6 files changed, 13 insertions(+), 8 deletions(-) rename specs/composition-full/common/schemas/{ => requestBodies}/Batch.yml (100%) rename specs/composition-full/common/schemas/{ => requestBodies}/BatchCompositionAction.yml (69%) rename specs/composition-full/common/schemas/{ => requestBodies}/RulesBatchCompositionAction.yml (68%) diff --git a/specs/composition-full/common/schemas/components/CompositionRule.yml b/specs/composition-full/common/schemas/components/CompositionRule.yml index 797495ec3fd..dd5d115ab47 100644 --- a/specs/composition-full/common/schemas/components/CompositionRule.yml +++ b/specs/composition-full/common/schemas/components/CompositionRule.yml @@ -77,3 +77,8 @@ anchoring: Empty queries are only allowed as patterns with `anchoring: is`. enum: [is, startsWith, endsWith, contains] + +objectID: + type: string + example: 'my_composition_rule_object_id' + description: Composition rule unique identifier. \ No newline at end of file diff --git a/specs/composition-full/common/schemas/Batch.yml b/specs/composition-full/common/schemas/requestBodies/Batch.yml similarity index 100% rename from specs/composition-full/common/schemas/Batch.yml rename to specs/composition-full/common/schemas/requestBodies/Batch.yml diff --git a/specs/composition-full/common/schemas/BatchCompositionAction.yml b/specs/composition-full/common/schemas/requestBodies/BatchCompositionAction.yml similarity index 69% rename from specs/composition-full/common/schemas/BatchCompositionAction.yml rename to specs/composition-full/common/schemas/requestBodies/BatchCompositionAction.yml index fb9e7ce55f5..ac413adc9c2 100644 --- a/specs/composition-full/common/schemas/BatchCompositionAction.yml +++ b/specs/composition-full/common/schemas/requestBodies/BatchCompositionAction.yml @@ -4,11 +4,11 @@ deleteCompositionAction: additionalProperties: false properties: objectID: - $ref: '../../../common/parameters.yml#/objectID' + $ref: '../components/Composition.yml#/objectID' required: - objectID batchCompositionAction: oneOf: - - $ref: './components/Composition.yml#/composition' + - $ref: '../components/Composition.yml#/composition' - $ref: '#/deleteCompositionAction' diff --git a/specs/composition-full/common/schemas/RulesBatchCompositionAction.yml b/specs/composition-full/common/schemas/requestBodies/RulesBatchCompositionAction.yml similarity index 68% rename from specs/composition-full/common/schemas/RulesBatchCompositionAction.yml rename to specs/composition-full/common/schemas/requestBodies/RulesBatchCompositionAction.yml index d7666524e41..5274c3ae775 100644 --- a/specs/composition-full/common/schemas/RulesBatchCompositionAction.yml +++ b/specs/composition-full/common/schemas/requestBodies/RulesBatchCompositionAction.yml @@ -4,11 +4,11 @@ deleteCompositionRuleAction: additionalProperties: false properties: objectID: - $ref: '../../../common/parameters.yml#/objectID' + $ref: '../components/CompositionRule.yml#/objectID' required: - objectID rulesBatchCompositionAction: oneOf: - - $ref: './components/CompositionRule.yml#/compositionRule' + - $ref: '../components/CompositionRule.yml#/compositionRule' - $ref: '#/deleteCompositionRuleAction' diff --git a/specs/composition-full/paths/objects/multipleBatch.yml b/specs/composition-full/paths/objects/multipleBatch.yml index 525f9109892..2f61ce01c39 100644 --- a/specs/composition-full/paths/objects/multipleBatch.yml +++ b/specs/composition-full/paths/objects/multipleBatch.yml @@ -25,9 +25,9 @@ post: additionalProperties: false properties: action: - $ref: '../../common/schemas/Batch.yml#/action' + $ref: '../../common/schemas/requestBodies/Batch.yml#/action' body: - $ref: '../../common/schemas/BatchCompositionAction.yml#/batchCompositionAction' + $ref: '../../common/schemas/requestBodies/BatchCompositionAction.yml#/batchCompositionAction' required: - action - body diff --git a/specs/composition-full/paths/rules/saveRules.yml b/specs/composition-full/paths/rules/saveRules.yml index 3b9d0c0bc0e..9cc72329065 100644 --- a/specs/composition-full/paths/rules/saveRules.yml +++ b/specs/composition-full/paths/rules/saveRules.yml @@ -28,9 +28,9 @@ post: additionalProperties: false properties: action: - $ref: '../../common/schemas/Batch.yml#/action' + $ref: '../../common/schemas/requestBodies/Batch.yml#/action' body: - $ref: '../../common/schemas/RulesBatchCompositionAction.yml#/rulesBatchCompositionAction' + $ref: '../../common/schemas/requestBodies/RulesBatchCompositionAction.yml#/rulesBatchCompositionAction' required: - action - body From 84283b6878122e1e696b44f7bdb255511106a896 Mon Sep 17 00:00:00 2001 From: Clara Muller <5667350+ClaraMuller@users.noreply.github.com> Date: Wed, 16 Jul 2025 10:56:52 +0200 Subject: [PATCH 3/4] refactor(specs): create `composition-full/schemas/responses` directory --- .../{ => responses}/GetTaskResponse.yml | 2 +- .../common/schemas/{ => responses}/Hit.yml | 10 +++++----- .../ListCompositionsResponse.yml | 2 +- .../SearchForFacetValuesResponse.yml | 4 ++-- .../schemas/{ => responses}/SearchResponse.yml | 18 +++++++++--------- .../helpers/waitForCompositionTask.yml | 2 +- .../paths/advanced/getTask.yml | 2 +- .../manage_compositions/listCompositions.yml | 2 +- specs/composition-full/paths/search/search.yml | 2 +- .../paths/search/searchForFacetValues.yml | 2 +- 10 files changed, 23 insertions(+), 23 deletions(-) rename specs/composition-full/common/schemas/{ => responses}/GetTaskResponse.yml (62%) rename specs/composition-full/common/schemas/{ => responses}/Hit.yml (72%) rename specs/composition-full/common/schemas/{ => responses}/ListCompositionsResponse.yml (91%) rename specs/composition-full/common/schemas/{ => responses}/SearchForFacetValuesResponse.yml (90%) rename specs/composition-full/common/schemas/{ => responses}/SearchResponse.yml (82%) diff --git a/specs/composition-full/common/schemas/GetTaskResponse.yml b/specs/composition-full/common/schemas/responses/GetTaskResponse.yml similarity index 62% rename from specs/composition-full/common/schemas/GetTaskResponse.yml rename to specs/composition-full/common/schemas/responses/GetTaskResponse.yml index 7b4213b832a..fe1f94d4be9 100644 --- a/specs/composition-full/common/schemas/GetTaskResponse.yml +++ b/specs/composition-full/common/schemas/responses/GetTaskResponse.yml @@ -3,6 +3,6 @@ type: object additionalProperties: false properties: status: - $ref: '../../../common/responses/common.yml#/taskStatus' + $ref: '../../../../common/responses/common.yml#/taskStatus' required: - status diff --git a/specs/composition-full/common/schemas/Hit.yml b/specs/composition-full/common/schemas/responses/Hit.yml similarity index 72% rename from specs/composition-full/common/schemas/Hit.yml rename to specs/composition-full/common/schemas/responses/Hit.yml index 0460c23ac0f..bbce1eff6b8 100644 --- a/specs/composition-full/common/schemas/Hit.yml +++ b/specs/composition-full/common/schemas/responses/Hit.yml @@ -10,19 +10,19 @@ hit: - objectID properties: objectID: - $ref: '../../../common/parameters.yml#/objectID' + $ref: '../../../../common/parameters.yml#/objectID' _highlightResult: - $ref: '../../../common/schemas/HighlightResult.yml#/highlightResultMap' + $ref: '../../../../common/schemas/HighlightResult.yml#/highlightResultMap' _snippetResult: - $ref: '../../../common/schemas/SnippetResult.yml#/snippetResultMap' + $ref: '../../../../common/schemas/SnippetResult.yml#/snippetResultMap' _rankingInfo: $ref: '#/rankingInfo' _distinctSeqID: - $ref: '../../../common/schemas/Hit.yml#/distinctSeqID' + $ref: '../../../../common/schemas/Hit.yml#/distinctSeqID' rankingInfo: allOf: - - $ref: '../../../common/schemas/Hit.yml#/rankingInfo' + - $ref: '../../../../common/schemas/Hit.yml#/rankingInfo' - $ref: '#/compositionRankingInfo' compositionRankingInfo: diff --git a/specs/composition-full/common/schemas/ListCompositionsResponse.yml b/specs/composition-full/common/schemas/responses/ListCompositionsResponse.yml similarity index 91% rename from specs/composition-full/common/schemas/ListCompositionsResponse.yml rename to specs/composition-full/common/schemas/responses/ListCompositionsResponse.yml index fe37e05dc43..f318f3c1661 100644 --- a/specs/composition-full/common/schemas/ListCompositionsResponse.yml +++ b/specs/composition-full/common/schemas/responses/ListCompositionsResponse.yml @@ -6,7 +6,7 @@ listCompositionsResponse: type: array description: All compositions in your Algolia application. items: - $ref: './components/Composition.yml#/composition' + $ref: '../components/Composition.yml#/composition' nbPages: type: integer description: Number of pages. diff --git a/specs/composition-full/common/schemas/SearchForFacetValuesResponse.yml b/specs/composition-full/common/schemas/responses/SearchForFacetValuesResponse.yml similarity index 90% rename from specs/composition-full/common/schemas/SearchForFacetValuesResponse.yml rename to specs/composition-full/common/schemas/responses/SearchForFacetValuesResponse.yml index e44521915e5..8c3b73ffa0b 100644 --- a/specs/composition-full/common/schemas/SearchForFacetValuesResponse.yml +++ b/specs/composition-full/common/schemas/responses/SearchForFacetValuesResponse.yml @@ -37,7 +37,7 @@ searchForFacetValuesResults: example: 'Mobile phone' type: string highlighted: - $ref: '../../../common/schemas/HighlightResult.yml#/highlightedValue' + $ref: '../../../../common/schemas/HighlightResult.yml#/highlightedValue' count: description: Number of records with this facet value. [The count may be approximated](https://support.algolia.com/hc/en-us/articles/4406975248145-Why-are-my-facet-and-hit-counts-not-accurate-). type: integer @@ -47,4 +47,4 @@ searchForFacetValuesResults: Whether the facet count is exhaustive (true) or approximate (false). For more information, see [Why are my facet and hit counts not accurate](https://support.algolia.com/hc/en-us/articles/4406975248145-Why-are-my-facet-and-hit-counts-not-accurate-). processingTimeMS: - $ref: '../../../common/schemas/SearchResponse.yml#/processingTimeMS' + $ref: '../../../../common/schemas/SearchResponse.yml#/processingTimeMS' diff --git a/specs/composition-full/common/schemas/SearchResponse.yml b/specs/composition-full/common/schemas/responses/SearchResponse.yml similarity index 82% rename from specs/composition-full/common/schemas/SearchResponse.yml rename to specs/composition-full/common/schemas/responses/SearchResponse.yml index bce2f3a9186..53205b9894b 100644 --- a/specs/composition-full/common/schemas/SearchResponse.yml +++ b/specs/composition-full/common/schemas/responses/SearchResponse.yml @@ -18,7 +18,7 @@ searchResults: searchResultsItem: allOf: - - $ref: '../../../common/schemas/SearchResponse.yml#/baseSearchResponse' + - $ref: '../../../../common/schemas/SearchResponse.yml#/baseSearchResponse' - $ref: '#/SearchPagination' - $ref: '#/searchHits' - $ref: '#/resultsCompositionsResponse' @@ -28,13 +28,13 @@ SearchPagination: additionalProperties: false properties: page: - $ref: '../../../common/schemas/SearchParams.yml#/page' + $ref: '../../../../common/schemas/SearchParams.yml#/page' nbHits: - $ref: '../../../common/schemas/SearchResponse.yml#/nbHits' + $ref: '../../../../common/schemas/SearchResponse.yml#/nbHits' nbPages: - $ref: '../../../common/schemas/SearchResponse.yml#/nbPages' + $ref: '../../../../common/schemas/SearchResponse.yml#/nbPages' hitsPerPage: - $ref: '../../../common/schemas/IndexSettings.yml#/hitsPerPage' + $ref: '../../../../common/schemas/IndexSettings.yml#/hitsPerPage' required: - page - nbHits @@ -54,7 +54,7 @@ searchHits: items: $ref: 'Hit.yml#/hit' query: - $ref: '../../../common/schemas/SearchParams.yml#/query' + $ref: '../../../../common/schemas/SearchParams.yml#/query' params: type: string description: URL-encoded string of all search parameters. @@ -98,7 +98,7 @@ resultsInjectedItemInfoResponse: type: object properties: objectID: - $ref: '../../../common/parameters.yml#/objectID' + $ref: '../../../../common/parameters.yml#/objectID' required: - objectID required: @@ -130,7 +130,7 @@ compositionRunSearchResponse: additionalProperties: true properties: objectID: - $ref: '../../../common/parameters.yml#/objectID' + $ref: '../../../../common/parameters.yml#/objectID' appliedRules: type: array items: @@ -138,7 +138,7 @@ compositionRunSearchResponse: type: object properties: objectID: - $ref: '../../../common/parameters.yml#/objectID' + $ref: '../../../../common/parameters.yml#/objectID' required: - objectID required: diff --git a/specs/composition-full/helpers/waitForCompositionTask.yml b/specs/composition-full/helpers/waitForCompositionTask.yml index b84d09ce51a..85d1da58942 100644 --- a/specs/composition-full/helpers/waitForCompositionTask.yml +++ b/specs/composition-full/helpers/waitForCompositionTask.yml @@ -29,6 +29,6 @@ method: content: application/json: schema: - $ref: '../common/schemas/GetTaskResponse.yml' + $ref: '../common/schemas/responses/GetTaskResponse.yml' '400': $ref: '../../common/responses/CompositionNotFound.yml' diff --git a/specs/composition-full/paths/advanced/getTask.yml b/specs/composition-full/paths/advanced/getTask.yml index 8098fbff468..c80f122c922 100644 --- a/specs/composition-full/paths/advanced/getTask.yml +++ b/specs/composition-full/paths/advanced/getTask.yml @@ -27,7 +27,7 @@ get: content: application/json: schema: - $ref: '../../common/schemas/GetTaskResponse.yml' + $ref: '../../common/schemas/responses/GetTaskResponse.yml' '400': $ref: '../../../common/responses/BadRequest.yml' '402': diff --git a/specs/composition-full/paths/manage_compositions/listCompositions.yml b/specs/composition-full/paths/manage_compositions/listCompositions.yml index e7d897d65aa..94fde6f8872 100644 --- a/specs/composition-full/paths/manage_compositions/listCompositions.yml +++ b/specs/composition-full/paths/manage_compositions/listCompositions.yml @@ -17,7 +17,7 @@ get: content: application/json: schema: - $ref: '../../common/schemas/ListCompositionsResponse.yml#/listCompositionsResponse' + $ref: '../../common/schemas/responses/ListCompositionsResponse.yml#/listCompositionsResponse' '400': $ref: '../../../common/responses/BadRequest.yml' '402': diff --git a/specs/composition-full/paths/search/search.yml b/specs/composition-full/paths/search/search.yml index 883d06448c4..b9d9fd3a3e1 100644 --- a/specs/composition-full/paths/search/search.yml +++ b/specs/composition-full/paths/search/search.yml @@ -27,7 +27,7 @@ post: content: application/json: schema: - $ref: '../../common/schemas/SearchResponse.yml#/searchResponse' + $ref: '../../common/schemas/responses/SearchResponse.yml#/searchResponse' '400': $ref: '../../../common/responses/BadRequest.yml' '402': diff --git a/specs/composition-full/paths/search/searchForFacetValues.yml b/specs/composition-full/paths/search/searchForFacetValues.yml index ea16cc43944..8f2164a4218 100644 --- a/specs/composition-full/paths/search/searchForFacetValues.yml +++ b/specs/composition-full/paths/search/searchForFacetValues.yml @@ -48,7 +48,7 @@ post: content: application/json: schema: - $ref: '../../common/schemas/SearchForFacetValuesResponse.yml#/searchForFacetValuesResponse' + $ref: '../../common/schemas/responses/SearchForFacetValuesResponse.yml#/searchForFacetValuesResponse' '400': $ref: '../../../common/responses/BadRequest.yml' '402': From 14f3cbc64f400f971914fa09aecb9ce8020932c6 Mon Sep 17 00:00:00 2001 From: Clara Muller <5667350+ClaraMuller@users.noreply.github.com> Date: Wed, 16 Jul 2025 15:07:48 +0200 Subject: [PATCH 4/4] fix: apply comments --- specs/composition-full/common/schemas/Identifiers.yml | 9 +++++++++ .../common/schemas/components/Composition.yml | 9 ++------- .../common/schemas/components/CompositionRule.yml | 9 ++------- .../schemas/requestBodies/BatchCompositionAction.yml | 2 +- .../requestBodies/RulesBatchCompositionAction.yml | 2 +- specs/composition-full/paths/urlParams.yml | 2 +- 6 files changed, 16 insertions(+), 17 deletions(-) create mode 100644 specs/composition-full/common/schemas/Identifiers.yml diff --git a/specs/composition-full/common/schemas/Identifiers.yml b/specs/composition-full/common/schemas/Identifiers.yml new file mode 100644 index 00000000000..d0fa89eb592 --- /dev/null +++ b/specs/composition-full/common/schemas/Identifiers.yml @@ -0,0 +1,9 @@ +compositionObjectID: + type: string + example: 'my_composition_object_id' + description: Composition unique identifier. + +compositionRuleObjectID: + type: string + example: 'my_composition_rule_object_id' + description: Composition rule unique identifier. \ No newline at end of file diff --git a/specs/composition-full/common/schemas/components/Composition.yml b/specs/composition-full/common/schemas/components/Composition.yml index d246be22452..8b0814c5934 100644 --- a/specs/composition-full/common/schemas/components/Composition.yml +++ b/specs/composition-full/common/schemas/components/Composition.yml @@ -3,7 +3,7 @@ composition: additionalProperties: false properties: objectID: - $ref: '#/objectID' + $ref: '../Identifiers.yml#/compositionObjectID' name: type: string description: Composition name. @@ -17,9 +17,4 @@ composition: required: - objectID - behavior - - name - -objectID: - type: string - example: 'my_composition_object_id' - description: Composition unique identifier. \ No newline at end of file + - name \ No newline at end of file diff --git a/specs/composition-full/common/schemas/components/CompositionRule.yml b/specs/composition-full/common/schemas/components/CompositionRule.yml index dd5d115ab47..2bf9f3939b8 100644 --- a/specs/composition-full/common/schemas/components/CompositionRule.yml +++ b/specs/composition-full/common/schemas/components/CompositionRule.yml @@ -3,7 +3,7 @@ compositionRule: additionalProperties: false properties: objectID: - $ref: '../../../../common/parameters.yml#/objectID' + $ref: '../Identifiers.yml#/compositionRuleObjectID' conditions: type: array minItems: 0 @@ -76,9 +76,4 @@ anchoring: - `contains`. The pattern must match anywhere in the query. Empty queries are only allowed as patterns with `anchoring: is`. - enum: [is, startsWith, endsWith, contains] - -objectID: - type: string - example: 'my_composition_rule_object_id' - description: Composition rule unique identifier. \ No newline at end of file + enum: [is, startsWith, endsWith, contains] \ No newline at end of file diff --git a/specs/composition-full/common/schemas/requestBodies/BatchCompositionAction.yml b/specs/composition-full/common/schemas/requestBodies/BatchCompositionAction.yml index ac413adc9c2..ae8062fb122 100644 --- a/specs/composition-full/common/schemas/requestBodies/BatchCompositionAction.yml +++ b/specs/composition-full/common/schemas/requestBodies/BatchCompositionAction.yml @@ -4,7 +4,7 @@ deleteCompositionAction: additionalProperties: false properties: objectID: - $ref: '../components/Composition.yml#/objectID' + $ref: '../Identifiers.yml#/compositionObjectID' required: - objectID diff --git a/specs/composition-full/common/schemas/requestBodies/RulesBatchCompositionAction.yml b/specs/composition-full/common/schemas/requestBodies/RulesBatchCompositionAction.yml index 5274c3ae775..8f1537f6d32 100644 --- a/specs/composition-full/common/schemas/requestBodies/RulesBatchCompositionAction.yml +++ b/specs/composition-full/common/schemas/requestBodies/RulesBatchCompositionAction.yml @@ -4,7 +4,7 @@ deleteCompositionRuleAction: additionalProperties: false properties: objectID: - $ref: '../components/CompositionRule.yml#/objectID' + $ref: '../Identifiers.yml#/compositionRuleObjectID' required: - objectID diff --git a/specs/composition-full/paths/urlParams.yml b/specs/composition-full/paths/urlParams.yml index a7a94f547da..a0914ba915b 100644 --- a/specs/composition-full/paths/urlParams.yml +++ b/specs/composition-full/paths/urlParams.yml @@ -4,4 +4,4 @@ compositionID: description: Unique Composition ObjectID. required: true schema: - $ref: '../common/schemas/components/Composition.yml#/objectID' + $ref: '../common/schemas/Identifiers.yml#/compositionObjectID'