|| Vicaya Developer Guide || Online: Download || Guides: User Creator Developer ||

Vicaya offers an advanced search framework capable of running from a CDROM with no installation on all platforms.

Documentation

Introduction

Documentation for a software developer including standard development environment, checking out source code, dependencies, and architecture description. It is assumed that a developer is familiar with both the User Guide and the Content Creator Guide and is generally familiar with Vicaya from these perspectives.

Project page

Vicaya is undergoing rapid development. To get involved with Vicaya development, you will need the Java 1.4.2 SDK (Download J2SE SDK) or later, Apache Ant, and an SVN Client (such as TortoiseSVN).

There are four modules: launcher, search, vendor, and vicaya (trunk). The first three build targets which are included in the vicaya module, so it is not necessary to checkout all modules, unless you intend to modify a particular module.

Prerequisites

You will need Subversion (svn), Ant, Java SDK 1.4 or later, and a Unix shell (or Cygwin from Windows) with standard POSIX utilities.

You'll also need to set your JAVA_HOME path (however I find it convenient to use 'export JAVA_HOME=...' just before building, crawling, and launching in order to test various vendors and versions).

Create a 'vicaya-dev' development directory.

mkdir vicaya-dev
cd vicaya-dev

Checkout the Source Modules

Vicaya has recently been partitioned into several modules and the dependencies have been slightly simplified. The Launcher.jar (which bootstraps the server) has a separate development path as well as search.jar (library for a searchable web application). There is now a vendor module. Previously vicaya downloaded many dependencies and build everything from scrath. This made structure modifications and updates easier (if one is intimately familiar with the build) but complicated general and routine builds.

The basic form of Vicaya uses the documentation as the example searchable content (perhaps what you are reading at the moment). However, there are other modules, such as 'accesstoinsight' and certainly other content is possible. We will describe only the basic three modules here.

svn co https://vicaya.svn.sourceforge.net/svnroot/vicaya/trunk vicaya-trunk
svn co https://vicaya.svn.sourceforge.net/svnroot/vicaya/launcher/trunk launcher
svn co https://vicaya.svn.sourceforge.net/svnroot/vicaya/search/trunk search
svn co https://vicaya.svn.sourceforge.net/svnroot/vicaya/vendor/trunk vendor

Build with Ant

The default build does not include the various JRE's (for many platforms). Most likely this whole concept will be eliminated as Java is now free software and can be easily downloaded and configured, perhaps directly through the browser.

cd vicaya-trunk
ant clean build

While vicaya-trunk already includes copies of stable targets of Launcher.jar and search.jar, a complete build might look something like this:


$ cd vicaya-dev

$ cd launcher
$ ant
$ cd ..

$ cd search
$ ant
$ cd ..

$ cd vicaya-trunk
$ cp ../launcher/Launcher.jar src/main/resources/vicaya/Launcher.jar
$ cp ../search/search.jar src/main/resources/vicaya/nutch/search.jar
$ ant clean build

Quick Search Index

Creating a search index and other configuration is more properly handled elsewhere, but it is a good idea to test a simple search index. Once you have successfully build vicaya, you can start the distribution (vicaya-dev/vicaya-trunk/dist/vicaya-).

$ cd dist/vicaya-
$ java -jar Launcher.jar

Then, preferably in a separate bash shell:

$ cd dist/vicaya-/vicaya
$ sh start_crawl.sh
rm -rf ../documentation/WEB-INF/segments
mv ../segments/ ../documentation/WEB-INF/segments

To test your search index, point your browser to http://localhost:8108/search?query=user .

Note on Deprecated Dependencies

A full build ('ant buildfull') includes all the tested JRE's to be included on a cross-platform CDROM (deprecated), while 'ant buildquick' skips the download checks. Note, these scripts will not download the same file twice, but the timestamp checks and unzipping, untaring, unwaring stuff does take time.

Previous versions of Vicaya made heavy use of a foreign and local dependency repository in the home directory named '3rdParty'. This still exists but is being phased out. The idea was to use some of the best practices from Maven, but we will either use Maven properly or simplify the subversion repository with a 'vendor' branch. As of now, the '3rdParty' directory is still used for the nutch package but may be eliminated as we upgrade the underlying components (such as nutch 0.9).

The '3rdParty' directory is found in your home directory (such as ~/3rdParty . On windows: C:\Documents and Settings\username\3rdParty or unix: /home/username/3rdParty -- previous version of Vicaya (before 0.1.4) placed 3rdParty in the dev directory).

If you have not developed with Vicaya before, you may see some extra [get] lines when building with ant. This should only occur once, the first time you build, and will look something like this:

...

download:
      [get] Getting: http://genaud.net/2006/vicaya/bin/apache/nutch-0.7.2.tar.gz
      [get] To: C:\alex\vicaya\3rdParty\nutch-0.7.2.tar.gz
      [get] ....................................................
      [get] ....................................................
      [get] ....................................................
      [get] ....................................................
      [get] ....................................................
      [get] ....................................................
      [get] ....................
      [get] last modified = Sun Mar 26 01:24:09 CET 2006
      [get] Getting: http://genaud.net/2006/vicaya/bin/accesstoinsight/ati-2006-05-05-17.zip
      [get] To: C:\alex\vicaya\3rdParty\ati-2006-05-05-17.zip
      [get] local file date : Sun Mar 26 11:57:32 CEST 2006
      [get] Not modified - so not downloaded

...

References

Origins

The Vicaya project began as a response to a request at AccessToInsight.org for a search engine that could run from a CD-ROM. The goal is to be able to duplicate the website in a CD-ROM including a search engine. However, the Vicaya project is designed to support any offline website. In fact, it might be possible to support any read-only J2EE web application in addition to search (I'd love to learn about it and would be happy to offer suggestions).

|| Vicaya Developer Guide || Online: Download || Guides: User Creator Developer ||