Skip to content

Overview of the code

Runar Buvik edited this page Aug 13, 2014 · 5 revisions

Aub article This article is a work in progress. You can help Searchdaimon by expanding it with information you know.

The core of the ES is written in C and uses Perl extensively for internal plugins. The basic steps to compiling the C source code are to be logged in as the boitho user and cd to the /home/boitho/boithoTools/ folder. Then run make to make all or make [binary] to make a specific binary.

Compile all the ES source code:
make

When we refers to folder in this guide it normally mean under the /home/boitho/boithoTools/ folder, so the src folder is /home/boitho/boithoTools/src . But folder name starting with / is of course on the root file system. So /dev is still /dev.

Major folders in /home/boitho/boithoTools/

  • End-user search interface: public_html/webclient2/
  • Administrator interface: cgi-bin/webadmin/
  • Source code: src
  • Crawlers: crawlers
  • Document format converters: fileFilter

Plugins

If you have the option to make a plugin to solve your task you should do so. By developed changes as plugins other parts of the system can be changed without interfering. Having them as plugins also makes it easier to move functions to other ESs.

Currently there is ways to make plugins for crawling, user systems and converting files to text.

Crawlers

Crawlers access data on other systems and add it to the ES so the ES can index it.

The preferred whey is to use Perl and setup a new crawler from the administrator interface as described in the “Creating your own data connector” section of the ES manual http://www.searchdaimon.com/documentation/ .

User systems

User systems handle authentication and authorization of end-users. When a user wants to log on to an ES the user systems vitrifies the users username and password and allow or denies the login. The user system also look up which groups a user is a member of.

User systems are separated from crawlers because different data sources may share the same database of users. For example a company may have an Exchange email server and a file server. Both are connected to the same Microsoft Active Directory, and the user rights, username and password are therefore the same on both the Exchange server and the file server.

There are also possible to have more than one user systems. The preferred whey is to use Perl and setup a new crawler from the administrator interface

File filters

File filters extracts text from files.

A files filter can be written in any programing languages the creates something the ES can execute. Both binaries and scripts. You can also make a special crafted Perl module.

More info is available at Plugin: File filter

The core code

The core of the ES is written in C and is for the most part found in the src folder.

There are four main daemons that handle searching, crawling, document conversion and Active Directory integration.

Main article Developing on the four main daemons (Searching, Crawling, Documents and AD).

The boithoTools folder

The ES software resists in the /home/boitho/boithoTools/ folder. Most examples assume that you are in that folder and logged in as the boitho user when executing any commands.

If you are not there you must use a ssh client to log on to the ES as root. Then become the boitho user:
su – boitho
Go to the boithoTools directory.
cd boithoTools