Skip to content

Releases: Elastic-Suite/gally

v2.2.1

20 Nov 09:23

Choose a tag to compare

🐛 Fixes

Full Changelog: v2.2.0...v2.2.1

v2.2.0

18 Nov 13:31

Choose a tag to compare

New features

Add configuration management from Gally's BO

This release introduces a configuration system that allows administrators to manage Gally settings directly from the back office. Each configuration value can now be defined at different scopes (locale, localizedCatalog, ...), providing greater flexibility and control over how Gally behaves across multiple contexts.

image

Add user management from Gally's BO

Administrators can now manage Gally users directly from the back office, including creating, editing, and deactivating accounts. This update also introduces a built-in password reset system, allowing users to securely reset their credentials through the interface without external intervention.

image

End-to-End Testing Integration

A new end-to-end testing system powered by Playwright has been integrated into the CI pipeline. This addition enhances release reliability by automatically validating key user flows and ensuring consistent quality across updates.
todo

New facet sorting option

Facets can now be sorted not only in ascending alphabetical order but also in descending or natural order. This improvement gives administrators more control over how facet values are displayed.

image

💎 Date Attribute Support in Rule Engine premium

The rule engine now supports date-type attributes, enabling more advanced and flexible conditions based on dates. This allows administrators to create rules that take temporal data into account directly within the back office.

image

📦 Features

🐛 Fixes

🔨 Quality

Full Changelog: v2.1.0...v2.2.0

v2.1.0

15 Apr 15:15

Choose a tag to compare

New features

Define analyzer by source field

You can now override the analyzer used by OpenSearch for indexing and searching a specific field directly from the search configuration screen.

This update introduces a new prebuilt analyzer: standard_edge_ngram. Its purpose is to generate n-grams for the field's value, enabling partial matches during searches.

Eg: if a field has the value "Organic Cotton", the generated n-grams will be: "org", "orga", "organ", "organi", "organic", "cot", "cott", "cotto", "cotton".
Therefore, searching for "org" or "cot" in Front-office will allow the products having the value "Organic cotton" to be shown.

Note: Please keep in mind that this feature is not meant to be enabled on all attributes, and that it's not recommended to enable it on long text fields (description, etc...) because of the noise and the performance issues it can generates with such fields.

image

💎 Proportional Boosts premium

Introducing field value-based boosts, a new type of boost that applies a linear/proportional scoring based on the value of a numeric or decimal attribute.

This feature is designed exclusively for numeric or decimal fields and enables dynamic relevance scoring depending on the field's value.

image

New field type: File

A new File field type has been added to Gally. You can now send file content as a base64-encoded string as the value of a field.

OpenSearch will automatically extract text content from the file using the Apache Tika library via its ingest attachment plugin.

Span Queries

A new configuration column has been added with a toggle "Use for span queries".

In Gally's full-text search, this enables span queries — a mechanism that gives higher relevance scores to documents where the searched terms appear closer together in the text.

Example:
Consider the following two products:

SKU Name Description
AAA Lorena Cardigan The Lorena Cardigan is a simple way to dress up any outfit while remaining comfortable. Wide sleeves provide ease of movement while the back offers beautiful inset summer detail.
BBB Petra Flowers The Petra flowers is a summer dress that strikes a delightful balance between fun and functional. The easy style of this dress lends itself to relaxing and having a good time. Put your hands in the pockets and just chill.

If a user searches for "summer dress", both products will match because both terms appear in the descriptions.

However, with span queries enabled, product BBB will receive a higher score because the terms "summer" and "dress" are closer to each other in the text.

New request product_category_count

We add a new request type in the product search api : product_category_count.
This will help you to get the number of product by category from Gally.

image

Performance Improvements

We optimized Doctrine SQL queries and cache managment to minimize the number of database calls, resulting in significantly faster response times.

image

📦 Features

🐛 Fixes

  • [Example App] Price slider blinking and add range value by @matthias-goupil in #654
  • [CORS] Fix nelmio_cors config and env variable CORS_ALLOW_ORIGIN not corectly configured in compose.yml by @botisSmile in #652
  • [SSL] Fix certbot volume for renewal by @romainruaud in #655
  • [Deployment] Fix delivery workflow, add parenthesis on OR conditions to avoid the skipping of errors in AND conditions and move 'generate-keypair' to the end to avoid building of a wrong Docker images by @botisSmile in #662

🔨 Quality

Full Changelog: 2.0.0...v2.1.0

v2.0.0

04 Dec 16:32

Choose a tag to compare

New features

Update to API Platform 3.4

We’re excited to announce that Gally has been upgraded to use API Platform 3.4. This major update makes the platform more robust, secure, and performant, ensuring it continues to meet your needs reliably and efficiently.

Key Changes and Improvements:

  1. Compatibility with API Platform 3.4 Features:

    • Support for new metadata attributes and improved configuration options.
    • Enhanced management of API inputs and schema (OpenAPI 3.1 supported).
  2. Performance Enhancements:

    • Optimized query handling for search endpoints, delivering faster response times.
    • Reduced latency through the utilization of API Platform 3.4's internal optimizations.
  3. Simplified Configuration:

    • Adoption of the new conventions introduced in API Platform 3.4 for a more intuitive setup.
    • Refactored services for improved maintainability.
  4. Enhanced Security:

    • Updated critical dependencies.
    • Integration of the latest security best practices recommended by API Platform.

User Benefits:

  • Faster and more accurate search results: The new implementation boosts the performance of complex queries.
  • Improved stability and compatibility: Fewer bugs and easier integration with other systems.
  • Increased scalability: Ready for future updates thanks to a modernized architecture.

Date and Location source fields

You can now manage date and location source fields, enabling you to contribute and easily filter on these new types.

📦 Features

🐛 Fixes

🔨 Quality

Full Changelog: 1.3.1...2.0.0

v 1.3.1

13 Jun 16:15

Choose a tag to compare

New features

Attributes in autocomplete

A new configuration allows merchants to show attribute in the autocomplete results:
image

If you search for some product, the autocomplete response will contain some attributes in order to help users to find the product they are searching for more easily by pre-filtered the result page:
image

💎 Explain details premium

In the previous version we released a new page in the gally backoffice where marchant can preview the results of their configuration. In this version we add the possibility to show the details of how the score of each product has been computed.
image

💎 Use external model premium

Vector search congfiguration has been improve in order to allow the usage of external large language models (such as the one provided by OpenAI, Cohere or MistralAi) :

gally_vector_search:
    llm_model:
        name: miniLM_remote_v17
        format: REMOTE
        version: '2'
        config:
            model_type: bert
            embedding_dimension: 384
            framework_type: sentence_transformers
        connector:
            name: test_connector_model_remote_116
            version: 1
            protocol: http
            parameters:
                endpoint: api-inference.huggingface.co
            credential:
                huggingface_token: 'XXX'
            actions:
                - action_type: predict
                  method: POST
                  url: https://${parameters.endpoint}/pipeline/feature-extraction/sentence-transformers/all-MiniLM-L6-v2
                  headers:
                      Authorization: 'Bearer ${credential.huggingface_token}'
                  request_body: '{ "inputs": ${parameters.inputs} }'
                  pre_process_function: 'String first = params.text_docs[0]; return "{ \"parameters\":{\"inputs\":[\"" + first + "\"]}}";'
                  post_process_function: 'def shape = [params.result[0].length]; return "{\"name\": \"sentence_embedding\", \"data_type\": \"FLOAT32\", \"shape\": " + shape + ", \"data\": " + params.result[0] + " }"'
    trusted_endpoints:
        - "^https://api-inference\\.huggingface\\.co/.*$"

📦 Features

🔨 Quality

New Contributors

Full Changelog: 1.3.0...1.3.1

v 1.3.0

22 Mar 16:16

Choose a tag to compare

New features

Boost preview premium

In the boost contribution page, you can now have a preview of the effect of the boost you are creating. You will be able to see how the boost affect your product score and how the position of the product evolves after the application of this boost.

image

Explain premium

A new menu has been added to the gally backoffice. It allows user to visualize the results of a given context (a product search or a category product listing). This will help merchants to understand why some products are at a certain position by displaying their document score and highlight the product that are manually positioned.

image

Vector Search premium

A new endpoint has been added to the graphQl schema in order use the OpenSearch ability to do semantic search. In short, a vector that represent your document will be computed by a LLM (Large Language Model) during the indexation of your data based on you configuration. When a user will search data on your website, it's search query will be also computed as a vector and the search engine will return all the document that are semantically close to the search query instead of the results that match the words of the search query (like a classical search engine will do).

image

Configuration

A default model have been configured in the gally_vector_search.yaml, you can update this configuration to change this model by any PyToch or ONNX embedding model.

gally_vector_search:
    llm_model:
        name: 'huggingface/sentence-transformers/all-MiniLM-L12-v2'
        version: 1.0.1
        format: ONNX
        ...

The screen in the screenshot aboveallow you to compute a dynamic field on each product which will be used by the LLM to calculate the vector for this product.
The field "Vectorisable" indicate which field we want to include in vector computation.
The field "Position" indicate in which order we want to include these fields.
And the field "prompt" allow you to create a short sentence where the field value will be inserted at the position of the @%s@ placeholder.
For exemple if you have a product with these data :

name: My Product
sku: AAA
description: An incredible product
price: 75€

With the above configuration, the vector will be calculated from a dynamic field with the value : The product's name is: My Product and this is its description : An incredible product.

Usage

A new GraphQl endpoint has been added in the api : vectorSearchDocuments.
It needs the same parameter as the documents endpoint, but it will run a semantic search instead a fulltext search.

A new screen has been added to the example app in order to be able to compare results from these two search approaches.
image

📦 Features

🔨 Quality

  • [CI] Update cs-fixer command to avoid running docker compose from a sub directory @PierreGauthier in #588
  • [Symfony] Update composer version of symfony/flex to 1.21.5 by @botisSmile in #590

Full Changelog: 1.2.0...1.3.0

v 1.2.0

11 Dec 11:02

Choose a tag to compare

New features

Autocomplete

In the example App, the autocomplete feature has been added for products and categories.
Autocomplete_1-2-0

Search on CMS pages

In the example App, the search on "CMS pages" entity has been added.
cms_search_1-2-0

Thesaurus

In the premium version, you can now add synonyms and expansions to improve the search results according to your business.
Thesaurus_1-2-0

📦 Features

  • [Thesaurus] Merge thesauruses on master by @botisSmile in #574
  • [Search] [Autocomplete] feat #1243475 Autocomplete by @botisSmile in #558
  • [Search] [CMS] #1214071 Add possibility to search on CMS pages by @botisSmile in #579
  • [Versions] feat: #1265689 update front package versions to '~1.2.0-alpha.8' by @botisSmile in #583

🔨 Quality

Full Changelog: 1.1.0...1.2.0

v 1.1.0

10 Oct 11:54

Choose a tag to compare

What's Changed

  • ESPP-668 Refacto deploy action by @botisSmile in #509
  • Revert "ESPP-668 Refacto deploy action" by @botisSmile in #512
  • Add beberlei/doctrineextensions composer package by @botisSmile in #542
  • Update front version of Gally packages on master by @botisSmile in #544
  • Update @elastic-suite/gally-admin-shared version on example-app to main by @botisSmile in #551
  • "Merge" Feature boost on master by @botisSmile in #543
  • #1242562 [Elasticsearch] Prevent automatic ES requests during model A… by @rbayet in #546
  • Update gally front packages by @Adrien-Meynard in #552
  • Set initial scale value by @botisSmile in #553
  • [Github secret] Replace AWS_HOSTNAME_1_0_x by AWS_HOSTNAME_STABLE by @botisSmile in #559
  • Update the deploy schedule of the 1.1.x integration by @botisSmile in #566

Full Changelog: 1.0.2...1.1.0

v 1.0.2

21 Aug 13:04

Choose a tag to compare

What's Changed

Full Changelog: 1.0.1...1.0.2

v 1.0.1

24 Jul 17:00

Choose a tag to compare

What's Changed

New Contributors

Full Changelog: 1.0.0...1.0.1