Daniel, I'm still trying to get more legitimate load testing on our separate-Solr-system. But anecdotally, my single-user trials of problematic queries have been faster than on an embedded-Solr without exception. This is with an untuned Solr JVM and with both Nakamura and Solr running on the same non-clustered system, which naturally minimizes network overhead. I suspect the gain is due to more efficient memory and thread handling.
In our CalCentral development branch (based on 1.2.0), I've got a fairly good start at Maven procedures for the following tasks: * Check out and build a new Solr server executable and sample-directory JAR based on the Apache Solr trunk: https://github.com/ets-berkeley-edu/myberkeley/blob/dev/solrjar/pom.xml (We're not using a blessed release version of Solr, and so it behooves us to stay at least slightly up to date with their working branch.) * Merge our Solr configuration additions with Nakamura's Solr configuration customizations and with the current Solr default configurations: https://github.com/ets-berkeley-edu/myberkeley/tree/dev/solrconf * Unpack the Solr-server JAR into its own directory, configure the OAE to use the separate Solr server, and start and stop the Solr server: https://github.com/ets-berkeley-edu/myberkeley/tree/dev/solrserver As with the Calendar/ICS work I've done recently, I'd love to figure out a way to productize this for use by the central project. Best, Ray On 4/29/12 8:10 PM, Max Whitney wrote: > Hi all: > > I've cobbled together a couple of sources, and I think I have a valid set of > instructions for configuring solr in a separate space, as proof of concept > for getting it onto a separate node. If someone more knowledgeable spots an > error, please do correct me. > > Separating Solr > > You want this, it makes everything searchable. And faster. Put it on another > machine. > > Fire up a subdomain and name it solr.example.edu. > > Shut down any nakamura you might have running before you get started, so > you're in a clean state. > > Download the OAE specific build of pre-release Solr version 4 from > http://source.sakaiproject. > org/release/oae/solr/solr-example.tar.gz > > Create a solr directory on your solr.example.edu server, and unzip the > tarball there, to generate a directory named 'example' within the solr > directory. This 'example' directory structure is drawn directly from the > Apache solr suggested setup, and is going to be our actual solr setup, not > merely an example one. > > mkdir -p source/solr > mv solr-example.tar.gz solr > cd solr > gunzip solr-example.tar.gz > tar -xvf solr-example.tar > > There, now you have a directory structure like: > source/ > solr/ > example/ > > Retrieve the configuration files from the OAE 1.2 release link at > https://github.com/sakaiproject/solr/tree/org.sakaiproject.nakamura.solr-1.4.2. > Click the ZIP button at that location to retrieve the configuration files. > This will get you a zip file: > sakaiproject-solr-org.sakaiproject.nakamura.solr-1.4.2-0-g23dfa59.zip. > > Unzip this one in your source directory and move just the resources folder > into your solr direcotry: > > cd source > unzip sakaiproject-solr-org.sakaiproject.nakamura.solr-1.4.2-0-g23dfa59.zip > > make the configuration directory: > mkdir -p solr/conf > > copy the configuration files into your solr conf directory > cp -pr sakaiproject-solr-7404157/src/main/resources/* solr/conf > > Now, you'll have a directory structure like: > source/ > solr/ > example/ > conf/ > >> From the example directory, as a non-root user start it up. Note that the >> solr.solr.home value is the directory where you just unzipped the >> configuration files. > > cd solr/example > java -Dsolr.solr.home=/home/whitney/source/solr -Djetty.port=8983 -jar > start.jar 1> run.log 2>&1& > > > The solr service creates a data directory once it starts up. Now, you'll have > a directory structure like: > source/ > solr/ > example/ > conf/ > data/ > The run.log is in the example directory, where you kicked off the java process > > Good output looks like this: > === system out extract ==== > INFO: SolrDispatchFilter.init() done > 2012-04-30 01:41:50.896:INFO::Started [email protected]:8983 > Apr 30, 2012 1:41:50 AM org.apache.solr.core.SolrCore execute > INFO: [] webapp=null path=null params={start=0&event=firstSearcher&q=solr > +rocks&rows=10} hits=0 status=0 QTime=53 > Apr 30, 2012 1:41:50 AM org.apache.solr.core.SolrCore execute > INFO: [] webapp=null path=null > params={event=firstSearcher&q=static+firstSearcher > +warming+query+from+solrconfig.xml} hits=0 status=0 QTime=5 > Apr 30, 2012 1:41:50 AM org.apache.solr.core.QuerySenderListener newSearcher > INFO: QuerySenderListener done. > Apr 30, 2012 1:41:50 AM org.apache.solr.core.SolrCore registerSearcher > INFO: [] Registered new searcher Searcher@f102d3 main > === end system out extract ==== > > Certify the solr setup via a web browser by accessing > http://solr.example.edu:8983/solr. You should get a nice solr interface at > that url. > > Next is to configure your nakamura to reach out to the remote solr indexer > before starting OAE up to use the new, offboard solr. > > Create a file named org.sakaiproject.nakamura.solr.RemoteSolrClient.cfg in > the nakamura load directory with the single line: > > remoteurl = http://solr.example.edu:8983/solr > > Create a file named org.sakaiproject.nakamura.solr.SolrServerServiceImpl.cfg > in the nakamura load directory with the single line: > > solr-impl = remote > > And start up your nakamura > > cd nakamura > ./tools/run_productions.sh& > > Solr indexing will now occur on the solr.example.edu host, while the > application work occurs on your main host. > > > _______________________________________________ > oae-dev mailing list > [email protected] > http://collab.sakaiproject.org/mailman/listinfo/oae-dev > _______________________________________________ oae-dev mailing list [email protected] http://collab.sakaiproject.org/mailman/listinfo/oae-dev
