Retaining Result Curations when results are sorted

We are currently looking at implementing search result curation in order to boost a particular organisation’s page on our internal data portal.

Right now we are sorting the search results for this particular gscope by title so the problem that we are facing is that whilst the curated result is appropriately escalated to the top of the results if any conditions are met, when the results are sorted, it is sorting all results including the curated result thus removing the escalation.

Is there a way currently that we can still sort these results by title whilst retaining the curated result at the top of this list?

Hi @ryanbrown -

You may want to try using the Curator Action Type of ‘Display an advert with a link’ instead of ‘Promote results to first positions’.

There’s an additional option with the ‘Display an advert with a link’ Action to suppress the organically-matching version of the URL if triggered (“Remove identical document from search results”), preventing apparent duplicates from displaying.

The downside of this approach is that you’re manually curating that result’s title and summary text, rather than re-using the originally indexed item’s summary.

Thanks @gordongrace -

I’ve just gotten back from the weekend and given this a crack however, whilst this does promote to the top and I can deal with the manual title and summary, as soon as I either sort by title or add a gscope, the advertised result disappears from the top of the results xml :frowning:

Is there any way that I can potentially dynamically sort this list to keep it at the top?

The way that I am planning to implement this is that this particular result, if returned, will be highlighted differently on the results page as a highlighted result. I’ve coded the xslt to appropriately promote this result, however I need it to return in the first 10 results for this to occur.

Hi @RyanBrown

If you’ve switched to using the Curator Action Type of ‘Display an Advert with a Link’, you should see triggered results appearing in the data model as an array at response.curator.exhibits. An example:

...
"curator": {
    "exhibits": [
        {
            "titleHtml": "Advert Title",
            "displayUrl": "https://example.org",
            "linkUrl": "/s/redirect?collection=EXAMPLE&url=https%3A%2F%2Fexample.org&index_url=https%3A%2F%2Fexample.org&auth=0LCYqLFRg4O7JwSqrfb7Ag&profile=_default_preview&type=FP",
            "descriptionHtml": "This is my example URL to promote",
            "additionalProperties": { },
            "category": ""
        }
    ]
},
...

Or is you’re using search.xml:

<com.funnelback.publicui.search.model.transaction.SearchTransaction>
<response>    
  ...
    <curator>
      <exhibits>
        <com.funnelback.publicui.search.model.curator.data.UrlAdvert>
          <titleHtml>Advert Title</titleHtml>
          <displayUrl>https://example.org</displayUrl>
          <linkUrl>/s/redirect?collection=EXAMPLE&url=https%3A%2F%2Fexample.org&index_url=https%3A%2F%2Fexample.org&auth=0LCYqLFRg4O7JwSqrfb7Ag&profile=_default_preview&type=FP</linkUrl>
          <descriptionHtml>This is my example URL to promote</descriptionHtml>
          <additionalProperties/>
          <category/>
        </com.funnelback.publicui.search.model.curator.data.UrlAdvert>
      </exhibits>
    </curator>
    ...

This branch of the data model will persist for the same query, regardless of any sorting or gscope constraints applied.

At template-time, you’d need to extend your XSLT to conditionally display the contents of the Curator Exhibits array above the organic search results.