Work in progress! = ECE Solr Project (for 4.3.x) = Project initiated and driven by [http://www.api.no A-Pressen Interaktiv]. [http://www.escenic.com Escenic] (The company) is not responsible for any bugs or problems related to this project. [[TOC(noheading,inline)]] == Introduction == For a long time we have had problems with the default search in Escenic Studio/WebStudio. It has been extremely slow and risky in the way that certain search phrases could take almost all the resources available in the database. After switching to [http://www.mysql.com MySQL] we also experienced problems with the [http://dev.mysql.com/doc/refman/5.1/en/fulltext-boolean.html fulltext indexes] that locked tables and prevented people from saving articles during the indexing period. Therefore we decided to find an alternative solution. [http://www.escenic.com Escenic] has implemented an alternative search engine with Lucy. Like [http://lucene.apache.org/solr/ Solr] it uses [http://lucene.apache.org Lucene]. But since we really like the way [http://lucene.apache.org/solr/ Solr] works we decided to implement our own little variant of an Escenic search engine. When it comes to getting the Escenic articles indexed inside Solr we considered using the Escenic API and event listeners. But we soon concluded that this would be more work, and really not give us anything extra. So instead we came up with an indexer that reads the data directly from the database. Our implementation solves our problems for now. But we have some concrete plans on how to improve the search even more. Feel free to use it! == Participate == We are sure that there are features missing from this project, and things that could have been done better. Feel free to send patches and report bugs. Read the info on the [http://www.escenic.org escenic.org] frontpage on how to get access to the ticket system and svn. Read the Maven site documentation on how to build the source and testing it in a development environment. == Features == * Easy installation / Fully integrated with the config system in ECE (localconfig) * Solr fulltext search from Escenic Studio and !WebStudio * Ships with schema.xml ready to be used by Solr * Standalone indexer (execute from cron or similar). The indexer will automatically index all your articles. No need for initial steps. Just run it. == Limitations == This project is all about replacing the '''article search''' inside Studio and !WebStudio. It does not provide a site search like the Lucy plugin does (at least not for now). It does not offer an alternative image search, link search, or person search. The reason is that it is not possible to hook into these searches in Escenic 4.3.x and below. So you will be stucked with those a while longer. == License == This project is released under the [http://www.apache.org/licenses/LICENSE-2.0.html Apache License, Version 2.0] == Requirements == * [http://java.sun.com/javase/downloads/index_jdk5.jsp Sun jdk 1.5 or later] * ECE 4.3.2 (Not tested on 4.3.3. But this will be done very soon) * [http://www.apache.org/dist/lucene/solr/1.3.0/ Solr 1.3.0] * The indexer is only tested against MySQL and Postgres. But by adding an Oracle driver it should be easy to use it there as well. == Download == For now you will have to checkout the source from svn: {{{svn co http://escenic.projects.linpro.no/svn/trunk/ece-solr-project/}}} == Installation == === Installing the Solr server === This step is really well documented on the [http://lucene.apache.org/solr/ Solr] site. We recommend you to run a separate server outside the Escenic environment. With the distribution we ship a ready schema.xml you should put into your Solr conf directory. We also provide a stopword file for norwegian (bokmål/nynorsk). === Installing the Indexer === TODO === Installing the Solr Search Engine === This is the part of the project that must be put inside the Escenic environment. We will now walk you through the installation process. 1. First you will need to download the ece-solr-engine binary distribution. Unzip the file. 2. In the distribution directory you will find a zipped file called {{{ece-solr-engine-localconfig.zip}}}. Unzip this file from the root of your Escenic localconfig directory. This will replace the {{{neo/io/search/SearchManager.properties}}} with a custom made version. Make sure to backup the old one first. You will also see a new file inside this directory called {{{ApiSolrSearchEngine.properties}}}. In this file you _must_ replace the Solr url with the url to your Solr installation. 3. Now copy all the jar-files in the lib-directory (inside the distribution directory) into you applicaton server lib directory. This is the same location where for example escenic-io.jar is located. Make sure you haven't got any other versions of Dom4J in there. That's it. You should now be able to start you Escenic server and test the search against Solr from Studio og !WebStudio. You can enable debugging information from the Escenic admin site as usual. Set {{{DEBUG}}} on the {{{org.escenic.solr}}} package. == Resources == * [http://lucene.apache.org/solr/ The Solr project (It is so freeking cool!!!)] * [http://lucene.apache.org/java/2_4_0/queryparsersyntax.html The query syntax used by Solr] * [http://www.escenic.com Escenic.com] * Escenic Technet (Contact Escenic to get access) * [http://www.dilbert.com/most_popular/strip/ Daily Dilbert]