I have a query expression where I am trying to change the relevance of a document based on the year. I am sure there is a better way to write this but I don't know why what I have is not changing the ranking at all, here is the qre for a sample year which has no affect (Date is a datetime field)
args.queryBuilder.advancedExpression.add("$qre(expression:'@(Model.ToCoveoFieldName("Date")) *= \"2014*\" AND @(Model.ToCoveoFieldName("templatename")) == \"Press-Release\"', modifier:'99')");
First thing i would do is to actually validate if the resulting query (what is written in the expression part) returns results in the Index Browser (in the CES Admin Tool). I suspect your query doesn't return any results.
There is a field inside coveo named sysyear, so all you need to do is query for sysyear:2014. Using an advanced expression like a range scan or a wildcard pattern will be orders of magnitude slower, which won't necessarily be problematic on a small index but will start having an impact on a larger one.