Developer forum

Forum » Ecommerce - Standard features » Best practice for projects with multiple websites and high number of fields for filtering

Best practice for projects with multiple websites and high number of fields for filtering

Adrian Ursu Dynamicweb Employee
Adrian Ursu
Reply

Hi guys,

I am trying to optimize the performance of a project that has a couple of characteristics:

1. Multiple websites, multiple shops

2. High number of categories and subcategories

3. High number of properties for filtering

The performance is affected by the number of Expressions in a query. At least that's the first thing that needs optimization.

In order to handle it, I have tried to reduce ythe number of queries and fields as much as possible. Then, I tried to separate the Queries for each Level 1 Category.

This approach would significantly decrease the number of Query Expressions and the number of facets for each Level 1 tree but I have a major problem with URLs.

My approach was to create a separate page for each Level 1 category, add ProductCatalog module on a paragraph and set Ecommerce navigation on each page. Then, turn on the new URL option to get clean URL structure.

Everything looks fine for the first Category but the links for any subsequent categories are getting a -1,-2 respectively at the end of the URL.

I guess the system sees every instance of the URL as a duplicate.

I see that the URL properties take into consideration the Shop and Language but there is no filter for the Parent Group.

Is this something that can be accomplished with a custom URL provider?

Is there any other approach for this type of segmentation?

Thank you,
Adrian

 


Replies

 
Adrian Ursu Dynamicweb Employee
Adrian Ursu
Reply

Hi Guys,

Further to my efforts described above, I have separated the query by using separate pages for each Level 1 category.

I have tried various scenarios for getting the URLs propery but I have not managed to come to a suitable solution.

I am wondering if the new URL provider can be customized to include an additional filter by GroupID apart from the Language and Shop filters that it supports right now.

I am guessign that this filter can be applied on each separate instance to further filter what is added in the URL index by each page that's using the URL provider.

Of course, this will only solve my specific scenario where the separation is done by using a dedicated top page for each Level 1 Category.

If there are any other suggestions that could help improving perfomance while using standard DW functionality, I am all ears.

Thank you,
Adrian 

 

 
Nicolai Pedersen
Reply
This post has been marked as an answer

It is not the amount of query parameters that causes the performance issue. It is the number of facets - the query will only execute the expressions that has a value - see the result with debug=true. So your performance issue is coming from the facets would be my guess.

So if you use different facet definitions for each group, as discussed in another thread, you should get much better performance.

So I do not think you need the feature you request for.

URL providers can be customized and you can make your own and give additional features. Attached our version - a configurable add-in. Simply add a property for selecting a group and implement some logic in GetToplevelGroups method.

Votes for this answer: 1
 
Adrian Ursu Dynamicweb Employee
Adrian Ursu
Reply

Hi Nicolai,

This answer could have saved me 2 days of messing around with data and configuration if I would have had it last week. It is better late than never.

I am happy to have this information because things start to make sense now and I might be able to finally configure a performant solution.

Thank you,

Adrian

 

You must be logged in to post in the forum