Besides its other functionalities, including P2P and collaborative search, Seeks implements a meta-search engine. By meta-search it is meant that besides using its own database, Seeks can query a number of sources. These sources come in several formats:

  • search engines, such as Google, Bing, Blekko, Yahoo, Yauba, Exalead,
  • specialized websites such as Youtube, Dailymotion,  Google images, Bing Images, Yahoo Images, Flickr,
  • microblogging platforms, such as Twitter and Identica,
  • generic frameworks, such as Mediawiki, Dokuwiki, WordPress, Redmine,
  • standardized formats, such as OpenSearch, RSS, ATOM

First, install Seeks. If you’re running into difficulties, be sure to check the Documentation.

Once you are done, you can configure the feeds and search engines you wish to connect to.
By default, Seeks activates some engines and not others, and configuration is easy. Go to

src/plugin/websearch/websearch-config

and select the feeds and engines you’d like to search from. Basically there are two types of sources:

  • those that are preconfigured for you, Google, Bing, Yahoo, Exalead, Yauba, Wikipedia, Twitter, Identica, Youtube, Dailymotion, …
  • those that you need to point to a given source. For instance the Mediawiki search connector is tied to xx.wikipedia.org by default, where xx fits to the language of every query that is issued to the Seeks server. Though if you hold a Mediawiki instance for your own instance, like we do for Seeks documentation, you may want to use the connector on that website instead.

Check the engines and feeds configuration documentation for more details. Typically, using Seeks as a meta-search engine is useful when dealing with several frameworks and data sources, to build a central access point.

For instance, we use Seeks to gather results from our WordPress website, our Redmine development site and our wiki. The meta-search instance is running here.

Let us try with our setup node, here http://www.seeks-project.info/search_seeks.php

Using curl,

curl  -X GET "http://www.seeks-project.info/search_seeks.php/search/txt/bugs?output=json"

returns a JSON string of results.

Using the Seeks built-in CLI,

./seeks_cli --output json search http://www.seeks-project.info/search_seeks.php \
 "how to report bugs"

returns another JSON string.

There are more options you may be interested in:

  • engine and feed selection: you can choose to confine your query to a subset of the configured sources. Use the <pre>engines</pre> parameter. So fo r instance, you can select Google and Bing only, with
    engines=google,bing

    , or Identica only, with

    engines=twitter:identica

    . In the latter example,

    twitter

    stands for the feed parser name, and

    identica

    for the configured feed name. One last example then, you would select Twitter only, with

    engines=twitter:twitter.
  • Seeks can personalize the ranking of results according to your queries and clicks. Personalization is on by default. You can turn personalization off with <pre>prs=off</pre>. In this case, Seeks will apply a basic meta-search ranking based on the number of times a result was found in the sources. Though Seeks tries to be a bit smart doing this. So for instance, for tweets, Seeks counts the retweets, and rank the tweets accordingly.

See the full API description for more search options and parameters.

Once you’ve setup your Seeks meta-search engine, you can check the tips and tricks section to improve the performance and accessibility of your server.

Once you’re ready, you can then choose to go P2P and share your results and sources with others. But that’s another story.