On Fri, Nov 19, 2010 at 10:53 PM, Bing Li <lbl...@gmail.com> wrote: > Hi, all, > > Since I didn't find that Lucene presents updated indexes to us, may I > transmit indexes in the following way? > > 1) One indexing machine, A, is busy with generating indexes; > > 2) After a certain time, the indexing process is terminated; > > 3) Then, the new indexes are transmitted to machines which serve users' > queries;
Just replied to a similar question in another thread. The best way is probably to use Solr replication: http://wiki.apache.org/solr/SolrReplication You can set up replication to happen automatically upon commit on the master server (where the new index was made). As a commit should have been made when indexing is complete on the master server, this will then ensure that a new index is replicated on the slave server. > 4) It is possible that some index files have the same names. So the > conflicting files should be renamed; Replication will handle this for you. > 5) After the transmission is done, the transmitted indexes are removed from > A. > > 6) After the removal, the indexing process is started again on A. [...] These two items you have to do manually, i.e., delete all documents on A, and restart the indexing. > And, may I append them to > existing indexes? > Does the appending affect the querying? [...] What do you mean by appending? If you mean adding to an existing index (on reindexing, this would normally mean an update for an existing Solr document ID, and a create for a new Solr document ID), the best way probably is not to delete the index on the master server (what you call machine A). Once the indexing is completed, a commit ensures that new documents show up for any subsequent queries. Regards, Gora