Я нахожусь в процессе миграции Google Custom Search Engine, чтобы использовать CustomSearchControl для замены устаревшего API WebSearch, и одно из требований заключается в сортировке результатов предложения по дате. Но до сих пор я не мог понять, как сказать Google отсортировать результаты по последней дате, прежде чем вернуть предложение. Пример кода выглядит следующим образом:
var refinement="Support";
.....
switch(product)
{
case "10000":
refinement = "Support1";
break;
case "10002":
refinement = "Support1";
break;
case "10001":
refinement = "Support2";
break;
default:
break;
}
var customSearchControl = new google.search.CustomSearchControl('cseId');
customSearchControl.setSearchStartingCallback(this, function(control, searcher, query) {
searcher.setQueryAddition('more:' + refinement);
});
customSearchControl.setResultSetSize(7);
customSearchControl.draw('entries');
......
Я пробовал метку недавности для сортировки результатов, но она не работает:
customSearchControl.setSearchStartingCallback(this, function(control, searcher, query) {
//searcher.setQueryAddition('more:recent3');
searcher.setQueryAddition('more:' + refinement + ', more:recent3');
});
И я также пытался сортировать по атрибутам, но он тоже не работает:
var options = {};
options[google.search.Search.RESTRICT_EXTENDED_ARGS] = {'sort': 'date-sdate:d:s'}; //Tried to use other date format but it doesn't help
var customSearchControl = new google.search.CustomSearchControl('cseId', options);
Возможно, сортировка по атрибутам не будет работать, потому что у нас нет атрибутов, объявленных в нашей веб-документации. Таким образом, есть ли какой-либо другой способ, который позволяет нам указывать Google сортировать результаты поиска по дате?