Hybris: Change default boost value - sap-commerce-cloud

I want to show products of a particular manufacturer always on top. I tried applying boost rule from backoffice. But even after applying boost rule, the products don't appear on the top, instead somewhere below. This is probably because the boost factor is not enough.
The default boost factor is set as 100. Is there any way to change this value from backoffice or somewhere else?

There is a property "maxBoostFactorValue" defined for bean "boostRuleValidator" in the commercesearch-spring.xml. By modifying this value, the max boost factor can be changed.

Related

Original Estimates in Azure DevOps - Max value?

Our evolution of using DevOps is continuing (slowly but surely). One thing we've noticed is that some people are trying to but excessive estimates in for their time, but what we really want to be encouraging is for people to be breaking work down into multiple tasks.
Is there a way that we can set our DevOps work items to only accept a maximum value? I've had a look at the 'rules' and there doesn't seem to be anything there to let us do this, and because it's an out of the box field I don't think we can put a value limit against it.
I suppose what I want to understand is whether it would be possible to do this in some way? Could I do something with the existing 'Original Estimate' field or would I have to create a new custom field to have any chance of preventing people from putting in 100 hours for something that's actually more like 2?
If you are also using Boards, you could highlight work items where the original estimate is higher than a certain value. This would not prevent setting these values, but rather encourage the users to put in lower values.
https://learn.microsoft.com/en-us/azure/devops/boards/boards/customize-cards?view=azure-devops
Beware that this might not really help the underlying issue: People must be convinced of the benefits of splitting up tasks, otherwise they will just work around the tooling. Like always putting in the maximum value or not putting in the actual work hours.
Is there a way that we can set our DevOps work items to only accept a
maximum value?
I am afraid that setting the value limit for the Original Estimates field is currently not supported.
As workaround, you could need to create a custom field of type Picklist, and then specify the available values in the picklist.
You could add your request for this feature on our UserVoice site , which is our main forum for product suggestions.After suggest raised, you can vote and add your comments for this feedback. The product team would provide the updates if they view it.

Negative boost in Azure Search Profiles

We have been working on creating scoring profiles for our search. We need a way to "bury" or give "negative" boosts to some fields in case of types of scoring function "Magnitude", "Freshness", "Tags". We noticed that we cannot add a negative value for boost. Is there any other way to achieve this kind of behavior (burying results based the field)
We cannot use $OrderBy because it takes precedence over the scoring profile.
Please advise. Thanks!
you should only set positive boosting values, as described [here][1]. There may be a few things you could do. The first thing I would try is to set the weight to 0 for the fields that you do not care about. In that case, they will simply not impact the relevance.
Another option: If you know that a field should not impact relevance you could simply make that field not 'searchable'. That said, this is a property of the index definition -- so you would need to create a different index for each combination of non-searchable fields.
Depending on your scenario, you could also make a field filterable, and filter based on that field. Something like $filer=Freshenss eq 'Really Fresh'. See this link for more information on using filters.
thanks!
-Luis Cabrera
For "Magnitude", "Freshness", you can set the set the range start as higher value and range end as lower value. Would this be considered as negative impact?
Like this:
I resolved that scenario by creating negative values (using an INT field) for the field we wanted to bury. That gave us the negative boost we needed.
I used a similar technique for Date "Freshness" too, where we counted the days from some event and the higher the number the less fresh the date is and used a "magnitude" function for it.
Thanks!
I have thought the about the need for this too.
One idea I have, but haven't tried, is to do a second search on just the negative keywords. That search result will have scores as well.
Then use those scores in a function to reduce first search result scores.
(yes, it would be nicer if it could be do as part of ACS)

Sub locations (Rack/Tray/Position)

We currently have a small number of Acumatica locations set up which are largely functional rather than physical. (Inbound Testing, Stockroom, RMA Review, etc).
We use these to set default issue/receipt locations and other such things.
We are also interested in tracking physical locations for our serialized parts. (We would use a rack/tray/position system, with each rack holding multiple trays and position on a tray being specific to a single serial number.)
Does Acumatica have any built-in functionality to support this kind of thing, or to get us further along the path? We don't want to end up with 40,000 individual locations. If we need to add customizations, are there suggestions for how and where to do this?
Per discussion with Acumatica (thanks, Ruslan!) we have confirmed that there is no default functionality for what we're trying to do, and customization is required.
He suggested if each serialized item has its own location, we could extend the INItemLotSerial table to track this.

How to improve spacing in 'cose' layout in cytoscape.js?

I'm using cytoscape.js 2.3.9 and I'm playing with some layouts.
I'm now rendering about 150 nodes, but I wish to go up till 1000-1500. There are about 25 nodes with 1-50 posible childs.
My best approach for what I need has been with 'cose' layout, but I'm quite far from my final expected result.
I've tried several configurations playing with its attributes values as documented, but I'm no so much in force directed simulations and feel like trying without much sense.
With this config:
layout: {
'name':'cose',
'animate':false,
'refresh':.1,
'edgeElasticity' : 20,
'fit': true,
'gravity' : 100
}
I get this result (red line shows the size of the containing div):
I wish the graph fits better, leaving less blank space and child nodes to be closer to its parent.
Sometimes with few elements fits better (but not always), like this:
But even so some child nodes overlap its parent and others get so far.
Any advice on attributes values or any other layout that fit better on my purpouse?
Thank you.
As is the nature of force-directed/physics-sim layouts, you have to tailor the force values to your particular data. My suggestion is to copy-paste the example in the docs for cose; it uses the default values.
Experiment by changing each value independently, and see what effect you get.
Unfortunately, there is no one-size-fits all set of force values, but we've tried to set defaults that work OK for most data we've seen.

MKMapView: any way to tell max/min visibleRect (zoom level)?

Is there a constant or method for determining the maximum and minimum zoom level or visible rect of MKMapView? I'm looking even for a proxy solution such as getting a "visibleRectForRect:" method perhaps. The goal is to know when a map is "fully zoomed in" (etc) and change the display settings of related UI accordingly.
Given that you can calculate the zoomLevel (http://stackoverflow.com/questions/4359424/check-whether-zoom-level-changed), we can reasonably-safely assume that the zoom level is bracketed between 1 and 21 (not future-proofed but certainly constant for some years now).
Thus, check the zoom level and use whatever threshold is "max" for your app. In my tests I could never get the map to go beyond 3-19, so I use that.

Resources