2015-02-16 2 views
0

Я в настоящее время разрабатываю решение для системы, использующей технологию BLE на мобильных телефонах, для отправки данных регистрации/проверки через маяки на сервер. Затем сервер отправляет данные регистрации/проверки в экземпляр ElasticSearch, который затем запрашивается по желанию. В настоящее время у меня есть два индекса: один для данных регистрации, а другой - для контрольных данных. Оба, мои данные регистрации и проверки имеют только три поля: A deviceUUID, beaconId и timestamp, который в основном является временем, когда мобильный пользователь вошел в диапазон маяков (регистрация) или вышел из диапазона (checkout) ,ElasticSearch: 1 индекс против 2 индексов

Теперь я могу легко запросить данные регистрации и проверки в изоляции друг от друга. Например: подсчет количества раз, когда пользователь ввел диапазон определенного маяка между двумя конкретными датами. Но я не уверен, как я смогу вычислить период времени, в течение которого пользователь провел в диапазоне маяков например, в определенный день (в основном это разница между регистрацией и временем выписки). Поэтому я задаю следующие вопросы:

1- Для данной системы имеется единый индекс, более эффективный? Или я был прав, чтобы иметь два разделительных индекса? 2- На основе ответа на мой первый вопрос: Как я могу получить период времени, в течение которого пользователь провел в диапазоне маяков?

Примечание. Мои данные публикуются как строка JSON с мобильных телефонов.

ответ

0

При получении выписки, выполните последнюю проверку, а затем сохраните покупку в отдельном типе (таблице) с вычисленным затраченным временем. После этого анализ будет намного легче сделать.

+0

Но это означает, что при каждой проверке мне нужно будет получить последнюю проверку, вычислить разницу, а затем сохранить разницу, не забудьте также сохранить deviceUUID (снова) и время проверки/проверки (снова). Я нахожусь на правильном пути решения этой проблемы. Я отправлю его, когда он будет готов. Спасибо тонну за предложение Томаса! –

Смежные вопросы