Integration in MediaWiki

It is possible to insert wiki pages into the YaCy index using a web crawl on that pages. This guide helps you to crawl your wiki and to insert a search window in your wiki pages.

Retrieval of Wiki Pages

The following form is a simplified crawl start that uses the proper values for a wiki crawl. Just insert the front page URL of your wiki. After you started the crawl you may want to get back to this page to read the integration hints below.

URL of the wiki main page
This is a crawl start point
 

Inserting a Search Window to MediaWiki

To integrate a search window into a MediaWiki, you must insert some code into the wiki template. There are several templates that can be used for MediaWiki, but in this guide we consider that you are using the default template, 'MonoBook.php':

  • open skins/MonoBook.php
  • find the line where the default search window is displayed, there are the following statements:
    <form name="searchform" action="<?php $this->text('searchaction') ?>" id="searchform">
                  <input id="searchInput" name="search" type="text"
                    <?php if($this->haveMsg('accesskey-search')) {
                      ?>accesskey="<?php $this->msg('accesskey-search') ?>"<?php }
                    if( isset( $this->data['search'] ) ) {
                      ?> value="<?php $this->text('search') ?>"<?php } ?> />
                  <input type='submit' name="go" class="searchButton" id="searchGoButton"
                    value="<?php $this->msg('go') ?>"
                    /> <input type='submit' name="fulltext"
                    class="searchButton"
                    value="<?php $this->msg('search') ?>" />
                </form>
             
  • Remove that code or set it in comments using '<!--' and '-->'
  • Insert the following code:
    <p>Search with YaCy in this Wiki:</p>
    <script src="http://localhost:8091/yacy/ui/js/jquery-1.3.2.min.js" type="text/javascript"></script>
    <script>
       $(document).ready(function() {
          yconf = {
             url : 'http://localhost:8091/',
             theme : 'smoothness',
             title : 'YaCy Wiki Search',
             urlmaskfilter : '.*',
             width : 500,
             height : 600
          };
          $.getScript(yconf.url+'/yacy/ui/js/yacyui-portalsearch.js', function(){});
       });
    </script>
    <div id="yacylivesearch">
       <form id="ysearch" method="get" accept-charset="UTF-8" action="http://localhost:8091/yacysearch.html">
          <input name="search" id="yquery" type="text" size="15" maxlength="80" value=""/>
          <input type="hidden" name="verify" value="false" />
          <input type="hidden" name="maximumRecords" value="10" />
          <input type="hidden" name="resource" value="local" />
          <input type="hidden" name="urlmaskfilter" value=".*" />
          <input type="hidden" name="prefermaskfilter" value="" />
          <input type="hidden" name="former" value="" />
          <input type="hidden" name="display" value="2" />
          <input type="hidden" name="nav" value="all" />
          <input type="submit" name="Enter" value="Search" />
       </form>
    </div>
    
  • Check all appearances of static IPs given in the code snippet and replace it with your own IP, or your host name
  • You may want to change the default text elements in the code snippet
  • To see all options for the search widget, look at the more generic description of search widgets at the configuration for live search.