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