Press Ctrl / CMD + C to copy this to your clipboard.
This post will be reported to the moderators as potential spam to be looked at
I'm looking for a way to weigh in createDate in the search result. Ie, the later date, the higher score. Right now I have a customer complaining that "MySpecialEvent 2007" lands before "MySpecialEvent 2012" when searching for "MySpecialEvent".
Not sure how to do this given that the date really has noting to do with the search term. I'm thinking perhaps to modify pageScoreList after it has populated by adding a value of say createdDate - DateTime.Now.
What an interesting idea! The place to put in some extra logic is in the scoring algorithm itself rather than trying to re-arrange the order of the page scores themselves (though that's an option it wouldn't be my first choice).
This is a good post to read to understand how XSLTsearch scores/weights/ranks results to give you the needed background: http://our.umbraco.org/projects/website-utilities/xsltsearch/xsltsearch-how-to/34334-Best-way-to-feature-selected-articles
I think I'd add some logic to the 'weighting' variable in the scoreAttributes and scoreDataNodes templates to reduce the weighting a bit corresponding to the age of the document.
<!-- the weighting to apply to hits in this search field -->
<xsl:variable name="weighting" select="PS.XSLTsearch:power(2, number(PS.XSLTsearch:hitCount(substring-after($searchFields,string(name($item))), ','))-1)"/>
Perhaps subtract 0.1 for each year of age of a document? (Up to a maximum of perhaps 0.5; that is, anything more than 5 years old is all lumped into 'old' and not reduced in rank further). The exact amount and calculation will take some trial and error on your part to get the effect you want in the results.
Do post your solution for the benefit of the next fellow!
is working on a reply...
Write your reply to:
Image will be uploaded when post is submitted