Hi, sorry for the delay.
I have a question about this. I looked into it, and I'm a bit concerned about scalability. I've did some testing and Magma can easily using a MagmaCollection, and an index on it, search through a million records and find the first 20 matching ones in 250 milliseconds. Thats actually pretty fast !! And since Magma is also scalable in the number of nodes you can add, you can more or less guarantee that every user can have a response time which is in that range. Which is very nice! So now the question. I noticed that this context framework uses a collectionreader, enumerates all elements in database, and sees if the the keywords match (with a match percentage). So it can be that the one you're actually looking for is just not found, since there is a timeout on the searching time (5 minutes - I don't know anybody that is willing to wait that long for a response). Is this correct what I'm saying, or did I not completely understand it?
Your understanding correct, with one clarification:
collectionreader, enumerates all elements in database, and sees if the the
enumerates all elements in the reader...
Yes, the nature of the searching is linear, so that the framework can endow _any object_ with keyword search capabilities with no coding (by traversing its physical object graph). That's why it's a background with results-as-you-go.
But I should have to remembered you are working in a web environment, and so this option is perhaps not appropriate. Whether a web interface _can_ support a highly-interactive UI with background search results populating in real-time is superceded by whether it _should_; in the natural, expected behavior of web applications. Option 1 is the best choice for web.
- Chris