Skip to content

Java Search API. Provides an search API with implementations to various search indexes and providers. Provides high performance searching across multiple indexes, including federation.

License

alternatex/possom

 
 

Repository files navigation

=======================================
Build your own federated search engine
=======================================

Possom is an open sourced Search Middleware with federation capabilities and a built-in search portal framework. Possom enables a single user query to be dispatched to multiple information sources. These results can be analysed, weighted, federated, and clustered 
before being presented to the user according to declarative business rules.

    Possom is the core technology used to power http://sesam.no and http://sesam.se, which are scandinavian search, news and directory sites that utilise a large number of data sources including Yahoo!, PicSearch, Solr (Lucene), Youtube, and enterprise search 
systems from FAST.

    Possom makes it easy to build applications that look for information in many different places simultaneously. Possom can connect to almost any kind of data source that can be accessed using Java - databases, search indexes, files, back office systems, web 
services, ESBs. Similar product examples are FAST Unity, WebFeat, DeepWeb Explorit, dbWIZ, Carrot2, and Raritan SIFT.

    Possom takes care of all the complex tasks of communicating with multiple search indexes simultaneously, query- and result analysis, business rules application; leaving the developers to focus on other aspects of their application, such as presentation and 
usability.

    Possom is developed in an open environment and released under the Lesser General Public License. We invite you to participate in this open development project.


More information about Possom can be found at
http://sesat.no

Possom is licensed under GNU's Lesser General Public License version 3 (or later).
See LICENSE.txt for full license.

=======================================
Getting Started
=======================================

http://sesat.no/development-guidelines.html



=======================================
Beginners Tutorial
=======================================

http://sesat.no/tutorial-building-sesamcom.html




=======================================
Compiling crash: java.lang.NullPointerException at com.sun.tools.javac.comp.Check.checkCompatibleConcretes(..)
=======================================
When maven is building data-model-javabean-impl it fails with the javac crash:

[INFO] Compilation failure
Failure executing javac, but could not parse the error:
An exception has occurred in the compiler ...
java.lang.NullPointerException at com.sun.tools.javac.comp.Check.checkCompatibleConcretes(..)

try checking out sesat-kernel again with a new name (eg sesat-kernel1) and try building again. repeat until it works.
Or use Java7.
It's a known bug http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6218229 related to inodes.



=======================================
More information
=======================================

Possom - SEsam Search Application Toolkit - is a stack of software applications aiming to help efficient creation of feature-rich, stable and multi-source based search portals and search applications. Based on experience and learnings from the first installations 
of Sesam.no and Sesam.se, Possom is now an extensive toolkit with one primary focus: reduce development complexity and dramatically improve quality and delivery time. In fact, Possom lets customers create fully-functional portals in a few days rather than many 
months, as proved by the teams behind Sesam.no and Sesam.se, all using Possom to speed up site and site search development.

In general, writing a search application from scratch given only one or more indexes providing search results as data objects or XML, the following steps are usual:

    Create an application where the user types a search query
    Create a search function for each of the data sources to be searched in, tailored to the index profile / index data model
    The application queries each of the data sources in turn
    Display the results to the user

But, this is not at all flexible or scalable, with code that needs to be rewritten and tailored to any change in the underlying data source models. A much better approach would be to:

    Define a dynamic data model for each of the indexes to be searched in
    Implement either a parallel or a sequential search function that takes the search string and queries the different data sources, collects the data and delivers it to a templating engine. For such a function to be stable, it should
        Be able to analyse the search query to predict which indexes are worth searching in
        Handle faulty indexes
        Handle slow response time together with increased traffic, preventing resource starvation
        Handle the different APIs for the different indexes
        Have a model for unifying/normalising the search result
        Be robust when the index model / index profile changes (there should be no need to alter the search function)
    Implement a template engine that gets data from the search function and display it to the user
    Implement a logger that can register all searches with details about the user client, search context, zero-hits, index response time etc.
    Implement some sort of rules engine that triggers on particular terms in the search query, to intelligently boost which data source should be displayed first
    Allow for the application to present search results differently depending on IP-range, user session id, personalisation settings.
    Design templates to display the result

With Possom, you get all of the above by

    Set up your development environment,
    Define your data sources in a configuration file, and
    Hack the example templates that is included.

About

Java Search API. Provides an search API with implementations to various search indexes and providers. Provides high performance searching across multiple indexes, including federation.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Java 98.6%
  • JavaScript 1.4%