A number of problems
Hi team, Unfortunately the latest version has a number of issues...
Backoffice UX:
- You can not deselect properties. If you deselect an item and hit save and view again it is reselected
- Deselecting a property removes the border but "selected" tag that displays remains.
Bigger issues with data syncing:
-
You can not send a content block grid. This is too much data and the byte size is way too big.
-
As above some other custom property fields run into the error of byte size. Basically as I have seen with some custom projects the raw JSON output contains a lot of the raw Umbraco data that is not needed and thus too much. One example is the recursive parent data contained being there which is too much.
-
The other big issue is that it simply is not posting data across when the sync is run in the back office tool:
I have a page type, I select some properties, the API is connected. While the index is created there are no items. I can see the request: Host: c23-eu-2.algolianet.com User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:127.0) Gecko/20100101 Firefox/127.0 Accept: / Accept-Language: en-US,en;q=0.5 Accept-Encoding: gzip, deflate, br, zstd x-algolia-api-key: 14c2**************************** x-algolia-application-id: 3B77DDHVKX content-type: application/x-www-form-urlencoded Content-Length: 27 Origin: https://dashboard.algolia.com Connection: keep-alive Sec-Fetch-Dest: empty Sec-Fetch-Mode: cors Sec-Fetch-Site: cross-site Sec-GPC: 1 Priority: u=1
The request body though is: { "searchableAttributes": [ ] }
Response: { "updatedAt": "2024-05-17T06:21:47.977Z", "taskID": 1162837526000 }
Rolling back to previous versions it works but then there are still other issues...
You can not properly send media or other property types with meaningful data or values to Algolia. It relates to the oversize issues with picking some properties as well. There needs to be a curation of all the property types Umbraco offers and work to have curated data going to Algolia and not just a dump.
Images: You mainly need the image path URL and it being Absolute Since images have crops you should be configuring what crop alias to use or if it is the raw URL
Files: As with images you want an absolute URL file. Basically the media picker you need to know the type and output accordingly be it image or file
Tags: This just does not output in a useable way and the code management when rendering searching and actually getting these to be useful in the search data formation in some cases not possible and others it is just hard.
Content Grid: Basically unusable. The main purpose will be not to ever use it in any rendering but its the core source of content and keywords. It outputs just the wrong data to Algolia right now too large. You just need the raw content.
No exclusion: There is no way to say to not include an item in the search if you need to. This has to be custom.
And this basically continues through the different default properties. If some of these like content grid content can not be solved what I have looked to do manually is create an Algolia Composition which has a number of field properties like "Keyword rich text field, Allow to be used in search option" and so on. If there was a composition as part of the package that if attached to a document type was always sent when used in an index plus certain property types greyed out like a block grid as they are not supported may be a better approach?
Everything is bundled into a strange output and not easily accessible and requires a lot of work to get to use in indexing and front end. You would expect, as with Algolia's examples a clean and clear "OBJECTS... with Object and the properties under it as close to their roots as possible" Focused data. This is not what this does right now.
I want to use this but as working with projects right now I have either:
- Wrote custom codes based on Umbraco triggers to directly API send to Algolia in a better cleaner format
- Algolia offers connector support so it is easier to form a controller with custom API endpoint for a Document type(s) and connect that to Algolia to regularly pull from.
I am not the best coder and while I would like to help update this, it is a bit much for me to do right now :/
I hope this helps.
Hi @thenexus00 ,
Before I dive into your detailed issues, could you tell me which versions of the CMS and Algolia you have tested on? Thanks.
Regarding the design, the integration is using components of Umbraco's new UI Library, so the behavior is dictated by those web components and has not been changed from the first release of Algolia.
Data synchronization has been an aspect subject to multiple changes along the way, trying to adjust and align with the CMS (as the indexing is handled using components of the CMS), but these aside, I've also left a door open for developers to add their own custom converters for working with the data sent to Algolia. Through the IAlgoliaIndexValueConverter interface, one can access the content property directly. Wouldn't this be an option for you?
I have a page type, I select some properties, the API is connected.
While the index is created there are no items.
When you first create an index in the backoffice an Algolia index object is created, which is empty in the first place. The indexing occurs either on a manual build operation, or when a content item of a specific type is saved and published.
For specific content types (media, tags, ...) it's down to custom converters to handle this.
I will do some tests based on your input, but it will be helpful if you could send me some details on the structure of the content item and see particularly what is happening.
Thank you, Adrian
Hi Adrian
Umbraco Version: Latest Umbraco 13 Algolia Package: Latest version
Property Selection / Ui Library:
Issue 1: There is a choice in use OR UI bug then. If you have a tag indicating "selected" if this is not removed when deselected as with the border then maybe just remove it.
Issue 2: Deselection changes NOT being saved is a bug with the package not the UI. If you wish to remove a property and save and returning it is reselected this is a bug. It was not doing it on previous versions.
Data to Algolia / Index:
"When you first create an index in the backoffice an Algolia index object is created, which is empty in the first place. The indexing occurs either on a manual build operation, or when a content item of a specific type is saved and published."
This is not working. If I save an item or hit the sync tool no data is being synced. I showed the Algolia API log event for a full sync with nothing happening. There is no API log when saving a node that is part of the index. This used to work in previous versions.
"I've also left a door open for developers to add their own custom converters for working with the data sent to Algolia."
It is really good this exists but as of now you would need to do it for everything other other than a text field. I think that makes the package not tempting to use. With the other dataset sync methods it makes it more appealing to go different routes. These should exist if you want it in a certain way custom to your requirements. Out of the box though all default Umrbaco properties that CAN be selected should have a relevant output.
Example's... 1.Image: Default should be an absolute URL or at least relative URL. THE JSON object string is not useable.
2. Tag pickers As per algolia data recommendations string arrays should be set as string array's
And I also noted as of now with more recent Algolia changes there is too much output overload. Even if you do not select a Grid block property as part of the sync if you have a few fields of just images, text, dropdowns, tags it is also producing errors.
I also noted and have before that how the data is buried in a subset item in the output it is also harder to use and not per the Algolia recommendations.
I hope this is clearer. Right now this package is not likely to get picked up. The Shopify app for Algolia has a magnitude better output and easier to consume and configure for Algolia.
Hi @thenexus00 ,
I've released version 2.2.0 of the integration that addresses the issues reported. Also if you can update you site to use the latest of Umbraco CMS 13.x.
Thank you, Adrian