Сортировка: получение документов автора перед другими документами

#amazon-web-services #amazon-cloudsearch

#amazon-web-services #amazon-cloudsearch

Вопрос:

У меня следующий вопрос: Есть ли какой-либо способ использовать определенное постоянное значение в качестве связующего звена при сортировке?

Вот мой пример:

Предположим, что структура индекса:

 {
     title: "Title",
     author: "Name of author"
}
  

Допустим, у нас есть следующий поисковый запрос: http://example.cloudsearch.amazonaws.com/2013-01-01/search ?q=testamp;return=_all_fields,_scoreamp;sort=_score desc

Проблема в том, что у меня есть, если есть 10 документов с одинаковым названием «тест», все они будут иметь одинаковую оценку, теперь я хочу отсортировать эти документы и получить документы, созданные текущим автором сверху. Я пытался использовать выражение, но, похоже, не могу заставить его работать, это то, что я пробовал:

http://example.cloudsearch.amazonaws.com/2013-01-01/search ?q=testamp;return=_all_fields,_scoreamp;sort=_score desc,isauthor descamp;expr.isauthor=(author==%id) однако я сомневаюсь, что cloudsearch примет это. Есть ли какой-либо способ решить эту проблему с помощью строки поиска или мне нужно проиндексировать что-то вроде числового идентификатора автора?

Ответ №1:

Если кому-то еще интересно, это то, что я в итоге сделал.

Создано новое поле индекса: author_identifier которое я использовал для индексации уникального целочисленного идентификатора для каждого пользователя (что было еще одной проблемой, потому что идентификаторы пользователей были идентификаторами GUID, поэтому мне пришлось связать их с числами.

Затем я использовал выражение сортировки: http://example.cloudsearch.amazonaws.com/2013-01-01/search ?q=testamp;return=_all_fields,_scoreamp;sort=_score desc,isauthor descamp;expr.isauthor=(author_identifer==%mappedid)

Это было не идеальное решение, но, я думаю, это лучше, чем ничего.