From Fedora Project Wiki

< Infrastructure

Revision as of 09:15, 13 October 2009 by Huzaifas (talk | contribs) (Not Suitable)

Infrastructure InfrastructureTeamN1.png

Points of Contact

Project Sponsor

Name: Mike McGrath
Fedora Account Name: mmcgrath
Group: Infrastructure
Infrastructure Sponsor: mmcgrath

Secondary Contact info

Name: Huzaifa Sidhpurwala
Fedora Account Name: huzaifas
Group: Infrastructure

Name: Allen Kistler
Fedora Account Name: akistler
Group: Infrastructure

Name: Keiran Smith
Fedora Account Name: affix
Group: Infrastructure

Project Info

Project Name: Search Engine Enhancement
Target Audience: All users of Fedora web sites
Expiration/Delivery Date (required): F13


Fedora needs a search engine[1]


  • Crawl the web sites (wiki and non-wiki)
  • Search the web sites (wiki and non-wiki)


  • Python-based (no Java)
  • Programmable keywords to have control over what pages get displayed for certain keywords
  • XML or library interface so other applications can use it

Project Plan

  1. Investigate and evaluate existing open source search engines
  2. Select candidate software
  3. Create public test instance of candidate software
  4. Test for functionality, performance, and impact (re-evaluate, if necessary)
  5. Create capacity and deployment plans
  6. Deploy

Resources Needed

  • Public Test for testing candidate software
  • Permanent home(s) for deployment
    • Web server(s)
    • Database server(s)

Software Investigation and Evaluation

In Progress

  • KinoSearch [2]
Perl port of Lucene
written in Perl
  • written in Perl or TCL on top of PostgreSQL
  • Python interface available
  • not actively maintained
  • Perl port of Lucene
  • not actively maintained
  • SphinxSearch [6] Huzaifa investigating

Not Suitable

  • DataparkSearch [7]
written in C
written in Java
written in C#
  • written in Java
  • archives content rather than simply indexing it
  • written in C++
  • not actively maintained
written in C/C++
written in C++
written in Java, but ported to others [15]
written in C
  • Requires EzMwLucene (Java, not desirable) to be running on the servers to be searched
  • EzMwLucene is wiki-only, therefore MWSearch is wiki-only
  • written in Java
  • based on Lucene
  • RigorousSearch [19]
Crawls the MediaWiki database, not the web site
Doesn't work for non-MediaWiki web sites, including any non-wiki web site
written in C++
written in C
Swish++ is a rewrite in C++
  • Terrier (TERabyte RetrIEveR) [22]
written in Java
written in C++
written in C
written in C
Its just a MediaWiki plugin, not suitable for searching non-wiki sites

Public Testing


Deployment Plan



  1. "Fedora Search Engine". Infrastructure/Tickets. 
  2. "KinoSearch". Rectangular Research. 
  3. "Namazu". Namazu Project. 
  4. "OpenFTS". SourceForge. 
  5. "Plucene". CPAN. 
  6. "SphinxSearch Extension". MediaWiki. 
  7. "DataparkSearch". DataparkSearch. 
  8. "Egothor". Egothor. 
  9. "Grub". Wikia, Inc.. 
  10. "Heritrix". Internet Archive. 
  11. "ht://Dig". The ht://Dig Group. 
  12. "Indri". The Lemur Project. 
  13. "Isearch". Isite. 
  14. "Lucene". Apache Software Foundation. 
  15. "Lucene Implementations". Apache Software Foundation. 
  16. "mnoGoSearch". LavTech. 
  17. "MWSearch Extension". MediaWiki. 
  18. "Nutch". Apache Software Foundation. 
  19. "RigorousSearch Extension". MediaWiki. 
  20. "Sphinx". Sphinx Technologies. 
  21. "Swish-e". Swish-e. 
  22. "Terrier". Terrier Project. 
  23. "Xapian". Xapian Project. 
  24. "YaCy". Karlsruhe Institute of Technology. 
  25. "Zettair". Search Engine Group, Royal Melbourne Institute of Technology. 
  26. "HtdigSearch Extension". MediaWiki.