Hi David and Ludovic,
I have finished implementing distributed search for XWiki using the existing
plugin "lucene".
In short what the new code does. (on each individual installation)
1. As soon is XWiki is started, lucene plugin is initiated, during the
process of initialization, the machine makes is index remote available.
2. A Parallel searcher is created over all the remotely available indexes,
during the initialization of lucene plugin.
These 2 steps will achieve a simple distributed search. But Index updates
would not be reflected.
3. As and when there is an index update, index reader which was made
remotely available earlier in step 1 is re-opened and is made remotely
available.
With this Index updates on remote machines are reflected in search process.
But what if one the machines go down during the process ??
4. When ever there is an error while performing distributed search, the
parallel searcher in step 2 is redefined, i.e instead of searching 'n'
machines (earlier) it will search only 'n-m' machines.
At some point the machines went down will be started again. How to search on
these machines again?
5. A thread keeps on checking if searcher is set to search over all the
slaves defined in xwiki.cfg or not . If it is not searching on all the
slaves, It will try to redefine the searcher in step 2 as did in step 4.
6. I have modified existing XWiki.Results to make compatible to both
distributed/normal search.
7. Modified xwiki.cfg.vm, to have fews options for distributed search.
I have tested this on a cluster of 5 machines and it is working fine.
In addition to distributed search I have also attempted to fix 2
bugs/issues in earlier implementation of lucene.
a. Fix Lucene plugin scoring algorithm --
*XPLUCENE-8<http://jira.xwiki.org/jira/browse/XPLUCENE-8>
*b. Remove duplicates from Lucene search results --
*XPLUCENE-5<http://jira.xwiki.org/jira/browse/XPLUCENE-5>
*All these changes exist in the modified version of lucene plugin.
*Cannot commit the source code :
*I was trying to commit the source code to
https://svn.xwiki.org/svnroot/sandbox/plugins/lucene, but I couldn't
This is what I did,
1. svn co
https://pvsaikrishna@svn.xwiki.org/svnroot/sandbox/plugins/~/xwiki-sandbox-…
2. svn export lucene ~/xwiki-sandbox-plugins
3. cd ~/xwiki-sandbox-plugins
4. svn add lucene
5. svn commit --username pvsaikrishna -m 'distributed search using lucene'
*I got the following error*
svn: Commit failed (details follow):
svn: MKACTIVITY of
'/svnroot/sandbox/!svn/act/e5cbc51c-1643-4805-9019-0ce92d036d2b': 500
Internal Server Error (
https://svn.xwiki.org)
--Sai Krishna