위키피디아(Wikipedia)의 좌측 Sidebar메뉴에서 Search 메뉴를 이용하여 아무 글자나 쳐보면 다음과 같은  리스트 박스가 열린다.
사용자 삽입 이미지

이 기능은 Search Suggest 라는 기능인데, 단어가 확실하지 않을 때 유용한 기능이 될 수 있다. 원래 이 기능은 mediawiki 1.13.0 이전에는 익스텐션으로 구현되었으나, 1.13.0 버전부터는 위키의 기본기능이 되었다. 그렇지만 이 기능을 사용하기 위해서는 다음 옵션을 켜 주어야 한다.

-----------LocalSettings.php---------------
    $wgEnableMWSuggest = true;
--------------------------------------------------

주: $wgUseAjax 옵션은 기본적으로 켜 주지 않아도 작동하는 데 문제가 없었다.
Posted by novice9

댓글을 달아 주세요

앞의 게시물에서 Search Suggest 기능 켜기에 대해서 이미 언급을 한 적이 있다. 그런데 이 기능을 켜더라도 위키피디아(Wikipedia)와 같이 대소문자에 상관없이 Search Suggest 가 작동되지는 않는다. 대소문자와 상관없이 기능이 작동되려면 TitleKey 익스텐션을 추가해야 한다.
http://www.mediawiki.org/wiki/Extension:TitleKey

1. 다음과 같이 TitleKey 를 설치한다.
    debian:wiki/extensions$ svn checkout http://svn.wikimedia.org/svnroot/mediawiki/trunk/extensions/TitleKey/
    A    TitleKey/TitleKey.php
    A    TitleKey/titlekey.sql
    A    TitleKey/rebuildTitleKeys.php
    A    TitleKey/README
    A    TitleKey/TitleKey_body.php
    A    TitleKey/titlekey.pg.sql
    A    TitleKey/TitleKey.i18n.php
    체크아웃된 리비전 48216.
2. 폴더가 생겼는지 확인한다.
    debian:~/public_html/wiki/extensions$ ls
    Cite  FCKeditor  README  StubManager  SyntaxHighlight_GeSHi  TitleKey  UserLoginLogoutLog  UserMerge  awc
    debian:~/public_html/wiki/extensions$ cd TitleKey/
3. 설치과정을 확인하기 위해 README 파일을 참고한다.
    debian:~/public_html/wiki/extensions/TitleKey$ more README
    This extension provides case-insensitive matches for a few points in
    MediaWiki's functionality:
    * "go" exact title matches
    * Prefix-based searches in OpenSearch (Firefox plugin) and internal AJAX searches
    It does not provide complete case-insensitivity for title linking within the wiki.

    == Database schema ==
    A 'titlekey' table is added to the wiki's database, which maintains a case-folded
    copy of each page's title. This is then binary-indexed for matching and sorting.
    The table must be present for the wiki to function once the extension is enabled,
    and it must be populated for the title match functions to pick up matches.

    == Installation ==
    To enable the extension, add the following line to your LocalSettings.php file:
      include "$IP/extensions/TitleKey/TitleKey.php";

    You must then create and populate the new database table.
    The easiest way to do this is to run MediaWIki's standard updaters:
      php maintenance/update.php

    If you do not have command-line access to your server, you can manually
    apply the titlekey.sql file's commands to your database (check for proper
    table prefix, etc).

    == Repopulating the titlekey table ==
    The titlekey table can be repopulated by hand by running the rebuildTitleKeys.php
    command-line script.

4. LocalSettings.php 를 편집하여 다음 줄을 추가한다.
    -------------
    include "extensions/TitleKey/TitleKey.php";
    -------------

5. wiki root 하위의 maintenance 폴더의 update.php를 다음과 같이 실행한다.
    debian:~/public_html/wiki$ php maintenance/update.php
    MediaWiki 1.14.0 Updater
    Going to run database updates for mediawiki
    Depending on the size of your database this may take a while!
    Abort with control-c in the next five seconds...0
    ...creating titlekey table...
    ...populating titlekey table...
    ... 1000...
    ... 1594 ok.
    ...have ipb_id field in ipblocks table.
    ...have ipb_expiry field in ipblocks table.
    ...already have interwiki table
    ...indexes seem up to 20031107 standards
    ...hitcounter table already exists.
    ...have rc_type field in recentchanges table.
    ...have user_real_name field in user table.
    ...querycache table already exists.
    ...objectcache table already exists.
    ...categorylinks table already exists.
    Already have pagelinks; skipping old links table updates.
    ...have rc_ip field in recentchanges table.
    ...image primary key already set.
    ...have rc_id field in recentchanges table.
    ...have rc_patrolled field in recentchanges table.
    ...logging table already exists.
    ...have user_token field in user table.
    The watchlist table is already set up for email notification.
    ...watchlist talk page rows already present
    ...user table does not contain old email authentication field.
    ...page table already exists.
    ...have log_params field in logging table.
    logging table has correct log_title encoding.
    ...have ar_rev_id field in archive table.
    ...have page_len field in page table.
    revision timestamp indexes already up to 2005-03-13
    ...rev_text_id already in place.
    ...have rev_deleted field in revision table.
    ...have img_width field in image table.
    ...have img_metadata field in image table.
    ...have user_email_token field in user table.
    ...have ar_text_id field in archive table.
    ...page_namespace is already a full int (int(11)).
    ...ar_namespace is already a full int (int(11)).
    ...rc_namespace is already a full int (int(11)).
    ...wl_namespace is already a full int (int(11)).
    ...........................................
Posted by novice9

댓글을 달아 주세요

이전버튼 1 이전버튼

블로그 이미지
이 블로그는 삽질을 기록하는 곳입니다. ^_^
novice9
텍스트큐브,티스토리 검색

달력

 « |  » 2018.05
    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31    

최근에 받은 트랙백

글 보관함

Yesterday14,299
Today13,797
Total2,667,550