Unify title search and full search for simpler user interface

Moin 1.3 search engine

Moin has two types of searches:

  1. title search - quick search in the list of page names
  2. full text search - much slower (10-20x) search through all pages text

Search cost

As a site admin, you want users to first try a title search, and do full search only if title search did not help. full search in a huge wiki can take several seconds even if its the only process running. As a user you like to do a title search before a text search because you don't want to wait.

User interface

The current user interface has two buttons, "Titles" and "Text". When you click enter in the search box, title search is invoked by default.

The typical usage is to type a search term, click enter and check the results. If you did not find what you looked for, you click the text button to do a full text search, or try another search term.

Title search gives a list of page names, sorted alphabetically, without any page context. Full text search does both title search and full text search and display all results sorted by rank, with the first interesting lines of the page or the lines containing the first interesting matched text.

Each title match get 100 points vs 1 point for text match. Therefore, all title matches come always (practically) first in the list of search results.

Problems

Non standard search interface

New users does not know what is the meaning of "Text" and "Titles" buttons. They are used to Google, when you type some words and click search, and the search is done in both the documents titles and text. See UsabilityObservation/Chooses titlesearch when intends textsearch

Search results are not consistent

Sometimes show context, sometimes not. Sorted alphabetically or by rank.

Confusing

User that click enter in the search box did not find what he looked for might think that the search was not successful, and never try the "Text" search.

Proposal

New search interface

Instead of the two buttons, leave only one search button:

This setup is used by biggest search engines and lot of other sites.

According to useit.com:

references to other sites

Yahoo:

Amazon:

w3c.org:

WikiPedia:

Search results

All search results will be formatted in the same way, as it is done in the full text search:

Search algorithm

For a simple search term - the common case

  1. Preform a title search
  2. If there are more then 10 results:
    1. Preform a full text search in the list of pages found by a title search, this will enable ranking of those pages, so we can display the most interesting page first.
    2. Send a results page with Show next 10 results link

  3. Else preform a full text search and display the results as usuall.

Each next 10 results search, repeat from step 1, skipping results already sent.

When the user use advanced options like text: regex: title: and such, he knows exactly what he is doing, we should do exactly what we are told.

What if the user does only title searches? how do we rank the results? Possible solution is to add a text:term for each term in the search, like we add a title:term when doing title search.

Example runs

Search for "parser" on this wiki:

  1. page 1 list title search results 1-10 (0.3s)
  2. page 2 list title search results 11-20 (0.3s)
  3. page 3 list title search results 21-30 (0.3s)
  4. page 4 list title search results 31-40 (0.3s)
  5. page 5 list 2 last title search results and about 250 text search results. (2.5s)

    (!) first 4 pages are doing a search for "title:parser text:parser"

Search for "parser market" on this wiki:

  1. page 1 list title search results 1-10 (0.3s)
  2. page 2 list 2 last title search results and about 66 text search results. (2.5s)

    (!) first page doing a search for "title:parser title:market text:parser text:market"

Related links

MoinMoin: UnifySearch (last edited 2007-10-29 19:18:23 by localhost)