Quote:
Firstly iam very much indebted to all who helped me in sorting out this case insensitive Accent based search. It is working fine now..
No problem I'm happy to help.
Quote:
Before we implement this in our project i would like to confirm one thing. The problem is .. Our client maintains one DB which we hit using webservices to get data. Since searching using webservices is bit slow and also accent based searching is not allowed , we thought of maintaining one local DB where we synchronize the client DB using one Batch program(which runs for every 5mins). As of today there are more than 6 lakhs records in DB ,which is can be incremental. On server start up or once i will do batch indexing manually. My question is whether hibernate search automatically synchronizes the local DB data to indexes or not. I mean when i synchronize data to local DB using Batch, will hibernate search automatically detects changes applied on DB and does update its indexes or not every time without fail. Iam using annotations based approach in my pojo class. I heard if we use annotations based approach hibernate search will automatically synchronize the data between DB and indexes.
Hibernate Search will not be able to synch changed about which it doesn't know: it only listens to hibernate events; so it depends what do you mean by batch synchronizations. If it is implement by SQL or stored procedures, the indexes won't be updated. This is explained on the reference docs, I'd suggest to read them instead of relying on rumours you have heard of.
So, why do you need to hit it with webservices? if you have direct access - needed for any batch operation - then I don't understand why you would need webservices at all to interact with data: as you suggest alternative access yourself, it seems that this is an option you have?
I'd suggest three alternatives:
- implement search over webservice
- avoid using the webservices but connect directly to the remote database - would perform way better for other operations too
- have the webservice server index the data, and then copy over the index regularly as you would do with the database synch. Again, read the documentation as it provides already helpers to periodically synch indexes across shared filesystems.