Hi! I'm working on building a NRT solr instance. The schema is designed so documents can be partially updated. Some documents will need to receive or lose filter tags in a multi-valued field.
I have to be able to query already existing documents to add tags to them or remove tags from them. Obviously if I (soft-)commit after each document is added or removed the serializable consistency would guarantee that I can see all documents that I might want to change. However this is not desirable in terms of performance. I've come up with a potential solution: If I can track document updates that I make and only call commit before I would query documents that have been changed recently, the performance is not sacrificed and I will get the strict consistency where I need it. For this to work reliably the soft-auto-commit interval and the times specified through commit-within must strictly comply with the config and the requests. I have auto-commit interval of 60 seconds with open-searcher false and auto-soft-commit interval of 15 seconds. Documents will be submitted through the REST API where some of them will also have commit-within 2-3 seconds specified. My questions: - After a document indexing request has returned with success, what level of guarantee do I have that the document will be available after the configured soft-commit-interval? - After a document indexing request with commit-within has returned with success, what level of guarantee do I have that the document will be available after the requested commit timeout? - Alternatively if I could query solr when the last soft-commit was done I could ensure to call a soft-commit myself. Is there an API to see when or how long ago was the last (soft-)commit? I'm primarily interested in answers regards to solr in standalone mode. Thanks, Nandor