#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)
Это было не идеальное решение, но, я думаю, это лучше, чем ничего.