+1 Ryan. I understood this is a hobby project, where it might be fun to challange yourself, but I wouldn't recommend reinventing search unless "reinventing search" is your entire business ;-)
-- Cheers, Konrad 'ktoso’ Malawski Akka @ Lightbend On 31 March 2016 at 22:46:41, 'Ryan Tanner' via Akka User List ([email protected]) wrote: I don't want to rain on anyone's parade, but I think there's a reason that products like Solr and Elasticsearch are complicated: search is hard! Getting it right at scale is *really tough*. Personally, I would gladly trade the operational complexity of ES/Solr over reimplementing them myself. On Wednesday, March 30, 2016 at 12:42:53 AM UTC-6, Chelios wrote: Hey guys I've got an Eventsource based application (Not CQRS - Read and write are both on the write side). The state of all the entities/aggregates/actor are stored in memory because the data is not going to go above 120GB and I've have a machine with 265GB RAM. Problem: Suppose I have a million Products where each Product is an Actor supervised by ProductSupervisorActor and I want to perform the following query: Query: Find all the products where the product description matches some user input. I'm wondering if I could get away with just querying the state of the million actors and aggregating the result into one SearchRequestHandlerActor instead of using a search database like SOLR ? I've used SOLR before and it's super fast but I'm just trying to reduce the complexity in my application. If the state is already in memory may be I can just find a way to query it instead of introducing another moving part (SOLR) into the system that I have to manage and make sure that the data is synchronized. I would really like to find a solution to perform the above query efficiently by just using Actors with paging. If I can achieve this then I can have ProductActors running anywhere in a cluster and the search would work just fine. Instead, if I was using SOLR I would have to shard or partition the database which just another hassle. RIght now I've got a ProductSearchRequestHandlerActor which, on initilization, accepts totalNumberOfMessagesExpect: Long and accepts messages of type Option[ProductState] until the totalNumberOfMessagesExpect is reached. I have not implemented paging yet. I just wanted to get your opinion or ideas on how I can achieve this efficiently or any tips or I'm being silly for trying this because there is no central index ? Chel -- >>>>>>>>>> Read the docs: http://akka.io/docs/ >>>>>>>>>> Check the FAQ: >>>>>>>>>> http://doc.akka.io/docs/akka/current/additional/faq.html >>>>>>>>>> Search the archives: https://groups.google.com/group/akka-user --- You received this message because you are subscribed to the Google Groups "Akka User List" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at https://groups.google.com/group/akka-user. For more options, visit https://groups.google.com/d/optout. -- >>>>>>>>>> Read the docs: http://akka.io/docs/ >>>>>>>>>> Check the FAQ: >>>>>>>>>> http://doc.akka.io/docs/akka/current/additional/faq.html >>>>>>>>>> Search the archives: https://groups.google.com/group/akka-user --- You received this message because you are subscribed to the Google Groups "Akka User List" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at https://groups.google.com/group/akka-user. For more options, visit https://groups.google.com/d/optout.
