From charlesreid1

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 solr/

$ ant dist

Again, this will take a while.

Making Example

Make the Ant example from the solr/ directory by running

$ 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:

SolrExample1.png

Using Tomcat

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:

SolrExample2.png


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.

Indexing Data

You will want to start by indexing data. In the exampledocs folder is a file post.jar - this can be used to POST xml data (i.e. index the data).

If you're running Solr on a Tomcat server, index data by executing the command:

$ java -jar -Durl=http://localhost:8080/solr-example/update post.jar solr.xml monitor.xml

And if you're running Solr on Jetty, index data by executing the command:

$ java -jar post.jar solr.xml monitor.xml

Indexing HTML/TXT Files

To index HTML and TXT files, you need to edit the search engine's schema configuration file. This is located in /opt/solr/example/solr/conf/schema.xml. I recommend making a backup copy before you touch it.

You will also need to enable the SolrCell plugin:


The ExtractingRequestHandler is not incorporated into the solr war file, it is provided as a SolrPlugin, and you have to load it (and it's dependencies) explicitly.


http://wiki.apache.org/solr/ExtractingRequestHandler


Enabling the Solr Cell plugin (Option 1)

As mentioned above, Solr Cell is not part of solr.war. This means you have to tell Solr to load it. Instructions on doing this are here: http://wiki.apache.org/solr/SolrPlugins

Basically, you'll want to create a lib directory, and put the Solr Cell jar in there:

$ mkdir /opt/solr/example/solr/lib

$ cp ~/pkg/_sources/apache-solr-3.6.0/solr/dist/apache-solr-cell-3.6-SNAPSHOT.jar /opt/solr/example/solr/lib/.

(and restart it, of course).

Enabling the Solr Cell plugin (Option 2)

The other option is to specify the lib locations and names in /opt/solr/examples/solr/conf/solrconfig.xml:

  <lib dir="/path/to/apache-solr-3.6.0/solr/dist/" regex="apache-solr-cell-\d.*\.jar" />
  <lib dir="/path/to/apache-solr-3.6.0/solr/contrib/extraction/lib" regex=".*\.jar" />

(and restart, of course).

Add a data field for the text/html

Find some lines that specify various data fields:

   <field name="category" type="text_general" indexed="true" stored="true"/>
   <field name="content_type" type="string" indexed="true" stored="true" multiValued="true"/>
   <field name="last_modified" type="date" indexed="true" stored="true"/>
   <field name="links" type="string" indexed="true" stored="true" multiValued="true"/>

and add a field of your own, for the body of the HTML or text document:

   <field name="category" type="text_general" indexed="true" stored="true"/>
   <field name="content_type" type="string" indexed="true" stored="true" multiValued="true"/>
   <field name="last_modified" type="date" indexed="true" stored="true"/>
   <field name="links" type="string" indexed="true" stored="true" multiValued="true"/>
   <field name="body" type="text" indexed="true" stored="true" multiValued="true"/>

Add a copy action for the text/html

Now that a "body" field has been created, an action will be added that will copy anything put in the "body" field into the "text" field, since the text field is already defined/utilized.

Find the lines that specify copy actions:

   <copyField source="includes" dest="text"/>
   <copyField source="manu" dest="manu_exact"/>

and add a new copyField action:

   <copyField source="includes" dest="text"/>
   <copyField source="manu" dest="manu_exact"/>
   <copyField source="body" dest="text"/>

Restart

You'll need to restart before you can use the new field. Do this by killing/restarting your Tomcat server:

$ $CATALINA_HOME/bin/startup.sh restart

or by sending a break (Control + C) to the window in which Jetty is running, and restarting it.

Boom.

Das it.

No, just kidding.

There's still more stuff you have to do - specifically, submit your text file or HTML file to Solr.

Submit your text file to Solr

In order to submit a text file to Solr, you have to use something called Solr Cell, or ExtractingRequestHandler (see http://wiki.apache.org/solr/ExtractingRequestHandler for the Solr wiki page on that topic). This uses the Apache Tika toolkit, which allows you to access lots of different file formats.

You'll want to send the text file to Solr using curl, which is a utility that allows you to send HTTP requests via the command line. You'll use curl to send a POST with text data. (Note that you can also do this with XML files too).

The curl command to send a POST with text data looks like this:

$ curl 'http://localhost:8080/solr-example/update/extract?literal.id=exid2&commit=true' -F 'myfile=@Ulysses.txt'


(More later, tutorial still in progress..........)








Errors

Tika error

YOu might see an error regarding NoClassDefFoundError for org/apache/tika/mime/MimeTypeException, like this:

<html><head><title>Apache Tomcat/6.0.35 - Error report</title><style><!--H1 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:22px;} H2 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:16px;} H3 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:14px;} BODY {font-family:Tahoma,Arial,sans-serif;color:black;background-color:white;} B {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;} P {font-family:Tahoma,Arial,sans-serif;background:white;color:black;font-size:12px;}A {color : black;}A.name {color : black;}HR {color : #525D76;}--></style> </head><body><h1>HTTP Status 500 - org/apache/tika/mime/MimeTypeException

java.lang.NoClassDefFoundError: org/apache/tika/mime/MimeTypeException
	at java.lang.Class.forName0(Native Method)
	at java.lang.Class.forName(Class.java:247)
	at org.apache.solr.core.SolrResourceLoader.findClass(SolrResourceLoader.java:388)
	at org.apache.solr.core.SolrCore.createInstance(SolrCore.java:419)
	at org.apache.solr.core.SolrCore.createRequestHandler(SolrCore.java:455)
	at org.apache.solr.core.RequestHandlers$LazyRequestHandlerWrapper.getWrappedHandler(RequestHandlers.java:251)
	at org.apache.solr.core.RequestHandlers$LazyRequestHandlerWrapper.handleRequest(RequestHandlers.java:242)
	at org.apache.solr.core.SolrCore.execute(SolrCore.java:1376)
	at org.apache.solr.servlet.SolrDispatchFilter.execute(SolrDispatchFilter.java:365)
	at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:260)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:602)
	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
	at java.lang.Thread.run(Thread.java:680)
Caused by: java.lang.ClassNotFoundException: org.apache.tika.mime.MimeTypeException
	at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
	at java.net.FactoryURLClassLoader.loadClass(URLClassLoader.java:627)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
	... 22 more
</h1><HR size="1" noshade="noshade"><p><b>type</b> Status report</p><p><b>message</b> <u>org/apache/tika/mime/MimeTypeException

java.lang.NoClassDefFoundError: org/apache/tika/mime/MimeTypeException
	at java.lang.Class.forName0(Native Method)
	at java.lang.Class.forName(Class.java:247)
	at org.apache.solr.core.SolrResourceLoader.findClass(SolrResourceLoader.java:388)
	at org.apache.solr.core.SolrCore.createInstance(SolrCore.java:419)
	at org.apache.solr.core.SolrCore.createRequestHandler(SolrCore.java:455)
	at org.apache.solr.core.RequestHandlers$LazyRequestHandlerWrapper.getWrappedHandler(RequestHandlers.java:251)
	at org.apache.solr.core.RequestHandlers$LazyRequestHandlerWrapper.handleRequest(RequestHandlers.java:242)
	at org.apache.solr.core.SolrCore.execute(SolrCore.java:1376)
	at org.apache.solr.servlet.SolrDispatchFilter.execute(SolrDispatchFilter.java:365)
	at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:260)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:602)
	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
	at java.lang.Thread.run(Thread.java:680)
Caused by: java.lang.ClassNotFoundException: org.apache.tika.mime.MimeTypeException
	at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
	at java.net.FactoryURLClassLoader.loadClass(URLClassLoader.java:627)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
	... 22 more
</u></p><p><b>description</b> <u>The server encountered an internal error (org/apache/tika/mime/MimeTypeException

java.lang.NoClassDefFoundError: org/apache/tika/mime/MimeTypeException
	at java.lang.Class.forName0(Native Method)
	at java.lang.Class.forName(Class.java:247)
	at org.apache.solr.core.SolrResourceLoader.findClass(SolrResourceLoader.java:388)
	at org.apache.solr.core.SolrCore.createInstance(SolrCore.java:419)
	at org.apache.solr.core.SolrCore.createRequestHandler(SolrCore.java:455)
	at org.apache.solr.core.RequestHandlers$LazyRequestHandlerWrapper.getWrappedHandler(RequestHandlers.java:251)
	at org.apache.solr.core.RequestHandlers$LazyRequestHandlerWrapper.handleRequest(RequestHandlers.java:242)
	at org.apache.solr.core.SolrCore.execute(SolrCore.java:1376)
	at org.apache.solr.servlet.SolrDispatchFilter.execute(SolrDispatchFilter.java:365)
	at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:260)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:602)
	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
	at java.lang.Thread.run(Thread.java:680)
Caused by: java.lang.ClassNotFoundException: org.apache.tika.mime.MimeTypeException
	at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
	at java.net.FactoryURLClassLoader.loadClass(URLClassLoader.java:627)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
	... 22 more
) that prevented it from fulfilling this request.</u></p><HR size="1" noshade="noshade"><h3>Apache Tomcat/6.0.35</h3></body></html>

This means that Solr can't find Tika, and so it can't figure out what to do with the text file. The problem here is that the Tika jar is not in a place where Solr can find it.

(Still working on a solution.)



No cores were created

Once I got Tika working, I saw the error below. I have no idea what this problem even means. I can't find anything helpful online.

<html><head><title>Apache Tomcat/6.0.35 - Error report</title><style><!--H1 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:22px;} H2 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:16px;} H3 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:14px;} BODY {font-family:Tahoma,Arial,sans-serif;color:black;background-color:white;} B {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;} P {font-family:Tahoma,Arial,sans-serif;background:white;color:black;font-size:12px;}A {color : black;}A.name {color : black;}HR {color : #525D76;}--></style> </head><body><h1>HTTP Status 500 - Severe errors in solr configuration.

Check your log files for more detailed information on what may be wrong.

If you want solr to continue after configuration errors, change: 

 <abortOnConfigurationError>false</abortOnConfigurationError>

in solr.xml

-------------------------------------------------------------
org.apache.solr.common.SolrException: No cores were created, please check the logs for errors
	at org.apache.solr.core.CoreContainer$Initializer.initialize(CoreContainer.java:172)
	at org.apache.solr.servlet.SolrDispatchFilter.init(SolrDispatchFilter.java:96)
	at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:295)
	at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:422)
	at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:115)
	at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4072)
	at org.apache.catalina.core.StandardContext.start(StandardContext.java:4726)
	at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:799)
	at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:779)
	at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:601)
	at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:675)
	at org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:601)
	at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:502)
	at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1317)
	at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:324)
	at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:142)
	at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1065)
	at org.apache.catalina.core.StandardHost.start(StandardHost.java:840)
	at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1057)
	at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:463)
	at org.apache.catalina.core.StandardService.start(StandardService.java:525)
	at org.apache.catalina.core.StandardServer.start(StandardServer.java:754)
	at org.apache.catalina.startup.Catalina.start(Catalina.java:595)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289)
	at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)
-------------------------------------------------------------
org.apache.solr.common.SolrException: Unknown fieldtype 'text' specified on field body
	at org.apache.solr.schema.IndexSchema.readSchema(IndexSchema.java:511)
	at org.apache.solr.schema.IndexSchema.<init>(IndexSchema.java:123)
	at org.apache.solr.core.CoreContainer.create(CoreContainer.java:481)
	at org.apache.solr.core.CoreContainer.load(CoreContainer.java:335)
	at org.apache.solr.core.CoreContainer.load(CoreContainer.java:219)
	at org.apache.solr.core.CoreContainer$Initializer.initialize(CoreContainer.java:161)
	at org.apache.solr.servlet.SolrDispatchFilter.init(SolrDispatchFilter.java:96)
	at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:295)
	at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:422)
	at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:115)
	at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4072)
	at org.apache.catalina.core.StandardContext.start(StandardContext.java:4726)
	at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:799)
	at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:779)
	at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:601)
	at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:675)
	at org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:601)
	at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:502)
	at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1317)
	at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:324)
	at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:142)
	at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1065)
	at org.apache.catalina.core.StandardHost.start(StandardHost.java:840)
	at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1057)
	at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:463)
	at org.apache.catalina.core.StandardService.start(StandardService.java:525)
	at org.apache.catalina.core.StandardServer.start(StandardServer.java:754)
	at org.apache.catalina.startup.Catalina.start(Catalina.java:595)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289)
	at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)
</h1><HR size="1" noshade="noshade"><p><b>type</b> Status report</p><p><b>message</b> <u>Severe errors in solr configuration.

Check your log files for more detailed information on what may be wrong.

If you want solr to continue after configuration errors, change: 

 <abortOnConfigurationError>false</abortOnConfigurationError>

in solr.xml

-------------------------------------------------------------
org.apache.solr.common.SolrException: No cores were created, please check the logs for errors
	at org.apache.solr.core.CoreContainer$Initializer.initialize(CoreContainer.java:172)
	at org.apache.solr.servlet.SolrDispatchFilter.init(SolrDispatchFilter.java:96)
	at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:295)
	at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:422)
	at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:115)
	at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4072)
	at org.apache.catalina.core.StandardContext.start(StandardContext.java:4726)
	at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:799)
	at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:779)
	at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:601)
	at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:675)
	at org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:601)
	at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:502)
	at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1317)
	at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:324)
	at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:142)
	at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1065)
	at org.apache.catalina.core.StandardHost.start(StandardHost.java:840)
	at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1057)
	at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:463)
	at org.apache.catalina.core.StandardService.start(StandardService.java:525)
	at org.apache.catalina.core.StandardServer.start(StandardServer.java:754)
	at org.apache.catalina.startup.Catalina.start(Catalina.java:595)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289)
	at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)
-------------------------------------------------------------
org.apache.solr.common.SolrException: Unknown fieldtype 'text' specified on field body
	at org.apache.solr.schema.IndexSchema.readSchema(IndexSchema.java:511)
	at org.apache.solr.schema.IndexSchema.<init>(IndexSchema.java:123)
	at org.apache.solr.core.CoreContainer.create(CoreContainer.java:481)
	at org.apache.solr.core.CoreContainer.load(CoreContainer.java:335)
	at org.apache.solr.core.CoreContainer.load(CoreContainer.java:219)
	at org.apache.solr.core.CoreContainer$Initializer.initialize(CoreContainer.java:161)
	at org.apache.solr.servlet.SolrDispatchFilter.init(SolrDispatchFilter.java:96)
	at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:295)
	at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:422)
	at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:115)
	at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4072)
	at org.apache.catalina.core.StandardContext.start(StandardContext.java:4726)
	at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:799)
	at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:779)
	at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:601)
	at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:675)
	at org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:601)
	at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:502)
	at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1317)
	at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:324)
	at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:142)
	at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1065)
	at org.apache.catalina.core.StandardHost.start(StandardHost.java:840)
	at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1057)
	at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:463)
	at org.apache.catalina.core.StandardService.start(StandardService.java:525)
	at org.apache.catalina.core.StandardServer.start(StandardServer.java:754)
	at org.apache.catalina.startup.Catalina.start(Catalina.java:595)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289)
	at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)
</u></p><p><b>description</b> <u>The server encountered an internal error (Severe errors in solr configuration.

Check your log files for more detailed information on what may be wrong.

If you want solr to continue after configuration errors, change: 

 <abortOnConfigurationError>false</abortOnConfigurationError>

in solr.xml

-------------------------------------------------------------
org.apache.solr.common.SolrException: No cores were created, please check the logs for errors
	at org.apache.solr.core.CoreContainer$Initializer.initialize(CoreContainer.java:172)
	at org.apache.solr.servlet.SolrDispatchFilter.init(SolrDispatchFilter.java:96)
	at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:295)
	at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:422)
	at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:115)
	at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4072)
	at org.apache.catalina.core.StandardContext.start(StandardContext.java:4726)
	at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:799)
	at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:779)
	at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:601)
	at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:675)
	at org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:601)
	at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:502)
	at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1317)
	at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:324)
	at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:142)
	at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1065)
	at org.apache.catalina.core.StandardHost.start(StandardHost.java:840)
	at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1057)
	at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:463)
	at org.apache.catalina.core.StandardService.start(StandardService.java:525)
	at org.apache.catalina.core.StandardServer.start(StandardServer.java:754)
	at org.apache.catalina.startup.Catalina.start(Catalina.java:595)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289)
	at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)
-------------------------------------------------------------
org.apache.solr.common.SolrException: Unknown fieldtype 'text' specified on field body
	at org.apache.solr.schema.IndexSchema.readSchema(IndexSchema.java:511)
	at org.apache.solr.schema.IndexSchema.<init>(IndexSchema.java:123)
	at org.apache.solr.core.CoreContainer.create(CoreContainer.java:481)
	at org.apache.solr.core.CoreContainer.load(CoreContainer.java:335)
	at org.apache.solr.core.CoreContainer.load(CoreContainer.java:219)
	at org.apache.solr.core.CoreContainer$Initializer.initialize(CoreContainer.java:161)
	at org.apache.solr.servlet.SolrDispatchFilter.init(SolrDispatchFilter.java:96)
	at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:295)
	at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:422)
	at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:115)
	at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4072)
	at org.apache.catalina.core.StandardContext.start(StandardContext.java:4726)
	at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:799)
	at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:779)
	at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:601)
	at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:675)
	at org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:601)
	at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:502)
	at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1317)
	at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:324)
	at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:142)
	at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1065)
	at org.apache.catalina.core.StandardHost.start(StandardHost.java:840)
	at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1057)
	at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:463)
	at org.apache.catalina.core.StandardService.start(StandardService.java:525)
	at org.apache.catalina.core.StandardServer.start(StandardServer.java:754)
	at org.apache.catalina.startup.Catalina.start(Catalina.java:595)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289)
	at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)
) that prevented it from fulfilling this request.</u></p><HR size="1" noshade="noshade"><h3>Apache Tomcat/6.0.35</h3></body></html>


At this point I've screwed up this whole Solr thing past the point of being able to fix it.

I'm completely unable to figure out how to turn on logging, so I don't even know where to begin fixing it.

So, I'm giving up, and starting over.

Resources

These links are mostly worthless and unhelpful: