Web Server Search

Several specialized versions of IB are available for integration within (web) context management systems, in particular:

  • Generic
  • Typo3
  • Drupal (what's behind IBU News)
  • Java Servlet (e.g. Tomcat) based technologies

These are client/server and offload fragments of DB content from behind the CMS into the IB engine. Mirroring of searchable DB content--- what in the DB one wants to search (allowing for selective exclusion of information)--- into a search engine improves not just query capacity and user experience but also
  • Avoids expensive high-end server hardware upgrades providing over the course of typical project development significant cost savings.
  • Scales very well: Backend search servers can be load distributed over a cluster.
  • Helps avoid costs for planning, developing and implementing improved information retrieval performance on current RDBMS architectures.
  • Avoids expensive re-indexing and rebuilding of data tables.
  • Improves RDBMS performance: no need to have indexed fields (inserts into indexed fields on a RDBMS is generally very expensive since the index needs to be constantly rebuilt).
  • Offer more flexible and powerful search.
  • Enables the creation of user groups allowing different groups to have different views to both search and information presentation.
  • Allows the integration of page attachments (and other external information objects such as PDFs, Word Files, Audio/Video) into search.
  • Provides a higher level of information security:
    • Removes the need for SQL queries to directly access data in search.
    • A clear functional and even physical separation between search and storage.
    • Full control over information provided for search: Nothing is there other than what is intended for others to see.
    • The protocol itself is so designed that there is little one can accomplish with a hijacked search server.
    • The identify of the search server is private to the outside world--- so only insiders or those that have already broken the integrity of the platform could even know where it is.
    • The search server does not need to be accessible to the outside world (not even through a firewall).
    • The text information in the protocol itself is parsed by the client (Web server) and converted into a form for presentation. There is no means to embed foreign code.
  • The IB engine offers also a more generic OO design that allows one to connect different services into search to offer a kind of search Swiss Army Knife (jack of all trades). Search can even transparently access other DBs and networked distributed objects.

A number of these search integration features are particularly suitable for eCommerce applications
  • Scan allows for interfaces to be developed where people browse products by names they don't yet know.
  • Datatypes such as (search time) calculated numerical and monetary types allow, for example, prices to track foreign exchange markets.
  • Search refinement functionality.
  • Easily manageable product promotions and search time product rank boosting.
  • Customizable and user-installable ranking, scoring and sorting methods.
  • The ability to transparently integrate of other search sources such as SQL servers allows for realtime search of inventory and other volatile data features.
  • Full customization to control how products are displayed in search results
  • The possibility to get SQL back as a response to a query allows for realtime presentation views.

The client side code (what's running in Typo3 or Drupal) is a few lines of PHP code or a set of Python, Tcl or Java classes (for generic). The server is built around the "nano http[d]" program. Nano_http[d] is written in Python and uses IB as a module.

Nano_http[d] is open source "freeware" covered by a liberal BSD inspired license. Pre-requisites:

  • python 2.6
    [sources available from python.org]
  • MX extensions
  • MX experimental extensions
    [available from http://www.egenix.com/products/python/]
  • IB libs and Python loadable module