Hi,

> Since we use EmbeddedSolrServer how do we handle clustering? One instance
per wiki instance? How do they reconcile their
> indexes? Need an architecture diagram for our solution for heavy loads.
May be you can use an embedded Infinispan
<http://www.jboss.org/infinispan/>  (in
replication mode ) to store the index and do the clustering.

Regards,
Sasinda.


On Tue, Aug 28, 2012 at 5:34 PM, Vincent Massol <[email protected]> wrote:

> Hi Savitha,
>
> I've started reviewing quickly the SOLR code in preparation for an
> integration in the platform and I have some questions which I have jotted
> down below as I was reviewing the code. Sorry for the terse format, I
> actually wrote the questions to myself and then decide to send them as is :)
>
> General:
>
> * Need an architecture diagram showing the main modules and threads and
> how they interact with the platform
>
> Search-api:
>
> * Is the Search API supposed to be independent of SOLR?
> * Search interface is strange, it has implementation details such as:
> getImplementation(), initialize(),
> * It also has other concerns such as getStatus(), getStatusAsJson(),
> getVelocityUtils(), getSearchRequest()
> * Why do we need a Search interface? Why not instead use the Query module
> and introduce a new query type? (note return List from Query.execute()
> probably needs to be clarified). Replace SearchRequest with Query impl
> * Naming of interfaces are a bit strange. For example: BuildIndex; should
> it be IndexBuilder instead? What about DeleteIndex, should it be
> IndexDeleter?
> * I don't think we need deleteDocumentIndex(), deleteWikiIndex(),
> deleteSpaceIndex(), etc. We need a single deleteEntity(EntityReference
> reference, EntityType type). Same for IndexBuilder.
> * Why is there a DocumentIndexer interface? Why is a Document different
> from other entities? For ex I can see DocumentIndexer.deleteIndex() why not
> IndexDeleter.deleteEntity(documentRef)?
> * Why is there a need for RebuildIndex (which I assume is IndexRebuilder)
> and why cannot we use the IndexBuilder?
> * Why the need for SearchIndex?
>
> Search-solrj:
>
> * solrj server in embedded mode is used.
> * Shouldn't use system property but the xwiki configuration instead for
> the solrj home (see below in misc)
> * EmbeddedSolrServer depends on Servlet API? "Also, if using
> EmbeddedSolrServer, keep in mind that Solr depends on the Servlet API. "
> from http://wiki.apache.org/solr/Solrj
> * EmbeddedSolrServer should be started by listening to the app started
> event instead of lazily in Initializable IMO
> * Since we use EmbeddedSolrServer how do we handle clustering? One
> instance per wiki instance? How do they reconcile their indexes? Need an
> architecture diagram for our solution for heavy loads.
>
> Misc:
>
> * all API to review and improve/stabilize
> * typos to fix
> * licenses to fix
> * pom to fix
> * missing class javadoc (eg BuildIndex, DeleteIndex, etc)
> * exception handling to verify  (ex: SolrjSearchEngine)
> * Remove unneeded javadoc when @override
> * Need to use the XWiki Permanent Directory for storing SOLR configuration
> data (the solr home) - Need to move data currenty in solr/ in a
> solr-configuration jar module which gets used as a fallback if the data
> doesn't exist in the solr home dir.
> * Idea: use solr JMX to provide admin features (
> http://wiki.apache.org/solr/SolrJmx)
> * TODO: Think about how to migrate users to use SOLR instead of Lucene or
> DB Searches. Need a plan.
>
> Thanks!
> -Vincent
>
> _______________________________________________
> devs mailing list
> [email protected]
> http://lists.xwiki.org/mailman/listinfo/devs
>
_______________________________________________
devs mailing list
[email protected]
http://lists.xwiki.org/mailman/listinfo/devs

Reply via email to