Составные запросы в Amazon CloudSearch

Я хочу использовать группировку по результатам облачного поиска AWS.

 user | expense | status 
  1   | 1000    | 1 
  1   | 300     | 1 
  1   | 700     | 2 
  1   | 500     | 2 
  2   | 1000    | 1 
  2   | 1200    | 3 
  3   | 200     | 1 
  3   | 600     | 1 
  3   | 1000    | 2 

Выше приведена структура моей таблицы, мне нужен общий подсчет расходов для всех пользователей. Ожидаемый ответ-

{ user:1,expense_count:2500},{user:2,expense_count:2200 },{user:3,expense_count:1800 } 

Я хочу GROUP BY столбец user, и он должен подсчитывать общие расходы соответствующего пользователя.


person saurabh claritus    schedule 10.09.2015    source источник
comment
Как вы получили результат, с помощью boto, aws cli или других инструментов? Во-вторых, если вы можете экспортировать результат в формате json, вы сможете справиться с ним с помощью других существующих инструментов.   -  person BMW    schedule 10.09.2015


Ответы (1)


В CloudSearch нет (простого) способа сделать это, что понятно, если учесть, что ваш вариант использования больше похож на SQL-запрос, а не на то, что я бы назвал поиском. Если вы хотите искать пользователей по userId и суммировать их расходы, то поисковая система — не тот инструмент, который нужно использовать.

CloudSearch не предназначен для использования в качестве хранилища данных; он должен возвращать минимальную информацию (в идеале только идентификаторы), которую вы затем используете для извлечения данных. Вот краткое описание из документов:

Вы должны хранить данные документа в поисковом индексе, разрешая возврат полей только тогда, когда сложно или дорого извлекать данные с помощью других средств. Поскольку для применения обновлений документов в домене может потребоваться некоторое время, вам следует извлекать важные данные, такие как информация о ценах, с помощью возвращаемых идентификаторов документов, а не возвращаемых из индекса.

person alexroussos    schedule 10.09.2015