Solr/Crap: Difference between revisions
From charlesreid1
| Line 58: | Line 58: | ||
==Using Jetty (Defualt)== | ==Using Jetty (Defualt)== | ||
To run Solr, you have to have a web server running locally. The example that is distributed with Solar is also distribute with Jetty, a lightweight Java web server. After you've finished running the above commands and have made the Solr example, type: | To run Solr, you have to have a web server running locally. The example that is distributed with Solar is also distribute with Jetty, a lightweight Java web server. After you've finished running the above commands and have made the Solr example, type: | ||
Revision as of 04:27, 8 June 2012
Solr is a search engine server that allows for querying via HTTP, JSON, or XML, and returns results in JSON or XML.
I'm trying to use it to create a searchable database of text files.
Installation
Download it and compile it by using Ant (a Java-based make program):
$ wget http://mirror.metrocast.net/apache/lucene/solr/3.6.0/apache-solr-3.6.0-src.tgz
$ tar xzf apache-solr-3.6.0-src.tgz
$ cd apache-solr-3.6.0
$ ant ivy-bootstrap # this installs ivy, an Ant dependency
$ ant compile
It'll take a couple of minutes to finish.
Test
You can test everything by running
$ ant test
Making War
Make a .war file by doing this:
$ cd /path/to/apache-solr-3.6.0/solr $ ant dist
Again, this will take a while.
Making Example
Make the Ant example by typing
$ cd /path/to/apache-solr-3.6.0/solr $ ant example
Running Solr on a Web Server
Using Jetty (Defualt)
To run Solr, you have to have a web server running locally. The example that is distributed with Solar is also distribute with Jetty, a lightweight Java web server. After you've finished running the above commands and have made the Solr example, type:
$ java -jar start.jar
This will start the Jetty server and get Solr running from within Jetty. Visiting hlocalhost:8983/solr/admin should look something like this:
Using Tomcat
NOTE:
|
You can run Solr through Tomcat, a Java-based HTTP server from the Apache Software Foundatino (contrast that with the more common C-based Apache HTTP server). See my Tomcat page for installation/run instructions for Tomcat.
Download Solr
See above.
Build Solr and Solr example
See above.
Create Solr user in Tomcat
in $CATALINA_HOME/conf/tomcat-users.xml, define a new admin user for Solr:
<role rolename="manager"/> <role rolename="admin"/> <user username="admin" password="password" roles="manager,admin"/>
Create standalone Solr example directory
You will want to create a standalone directory that holds your Solr example. Tomcat will run a particular instance of Solr out of this standalone directory. I used /opt/solr.
Now you'll copy the Solr example that you built above into /opt/solr:
$ cp -r /path/to/apache-solr-6.0/example /opt/solr/.
Specify Solr Data Directory
To specify where the Solr instance is located, you'll need to edit /opt/solr/conf/solrconfig.xml and change the dataDir tag to point to the standalone Solr example's data directory:
<dataDir>${solr.data.dir:/opt/solr/example/solr/data}</dataDir>
Tell Tomcat How To Run Solr
You can tell Tomcat how to run Solr by creating a docBase fragment that points to the Solr war file. Create this file:
$CATALINA_HOME/conf/Catalina/localhost/solr-example.xml
with the following contents:
<?xml version="1.0" encoding="utf-8"?> <Context docBase="/opt/solr/example/solr/solr.war" debug="0" crossContext="true"> <Environment name="solr/home" type="java.lang.String" value="/opt/solr/example/solr" override="true"/> </Context>
Test It Out
Start up the Tomcat server:
$CATALINA_HOME/bin/startup.sh run
and go to
http://localhost:8080/solr-example/admin
and you should see something like this:
Using Solr
So you've got Solr up and running, but you don't have any data. Let's fix that.
Following Apache's Solr tutorial: http://lucene.apache.org/solr/api/doc-files/tutorial.html
The example that we built created some sample XML documents that can be used as inputs to Solr. Go to /opt/solr/example/exampledocs to have a look.
(More later, tutorial still in progress..........)