https://ketankhairnar.com/posts/implementing-scalable-search-functionality/