Work in progress!

ECE Solr Project (for 4.3.x)

Project initiated and driven by A-Pressen Interaktiv. Escenic (The company) is not responsible for any bugs or problems related to this project.

  1. Introduction
  2. Participate
  3. Features
  4. Limitations
  5. License
  6. Requirements
  7. Download
  8. Installation
    1. Installing the Solr server
    2. Installing the Indexer
    3. Installing the Solr Search Engine
  9. Resources

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 MySQL we also experienced problems with the fulltext indexes that locked tables and prevented people from saving articles during the indexing period. Therefore we decided to find an alternative solution.

Escenic has implemented an alternative search engine with Lucy. Like Solr it uses Lucene. But since we really like the way 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 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 Apache License, Version 2.0

Requirements

  • ECE 4.3.2 (Not tested on 4.3.3. But this will be done very soon)
  • 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 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.

  1. 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.
  1. 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

  • Escenic Technet (Contact Escenic to get access)