Search engines are very good at simple lookup searches. They provide accurate results to people who know what they are looking for. However, users who have fuzzy information requirements are not presented with decent options when using these typical search engines. This limitation in search capabilities is a frustration to users who are not exactly sure of their information needs. This is true for travel search engines, since most of these search engines only allow users to search for flights if you supply the engine with very specific information, such as the desired arrival city. This is the exact predicament that a flight booking company called Travelstart finds itself in. Travelstart wants to extend the search functionality of their website to cater for customers with unclear information needs.
We built an exploratory search system which is embedded in a web application. The search engine targets users who are in the process of looking for a holiday destination, while also being useful for people who know where they want to go. The system captures the query entered by the user, and returns results that are related to the user's query. For example, if the user wants to travel to an island for under R8000, the system finds islands that are within the user's budget, and returns relevant results. We designed a user interface in order to incorporate the search engine, focusing on making it user friendly, and efficient.
The system was developed as website and is used through a web browser. The main feature of the website is a text based interface that allows users to type in complex queries which are interpreted by the system. The step by step process the system will go through is described in Figure 1 below. With these processes in mind, we assigned the group members tasks to complete, which are outlined below as well.
Figure 1: System and subsystems of the project
An intuitive user interface was designed and developed in order to ensure that users find it easy to use the website. The design is user-centred and it was thoroughly evaluated in order to ensure that it is as intuitive as possible.
Once the user enters the query, the query is transformed into a structured query that is accepted by the search engine. Stemming, normalisation, tokenisation, and the omission of stop words, and more formulation techniques occur. Thereafter, query expansion takes place, using local context analysis, to improve the recall of results. The terms from the original query are taken and expanded using similar words from the database.
The flight data is stored in a database that allows attributes such as weightings and prices to be associated with destinations. The data is queried to pull relevant results for the query that was submitted. A relevance factor for keyword-destination pairs that is updated by the user when a user selects a destination is stored as well, and updated on each flight booking.
Results are ranked and given a weight in order to determine the order in which they appear to the user.
Ngoni.Choga@alumni dot uct dot ac dot za
Luqmaan.Salie@alumni dot uct dot ac dot za
Dylan.Henderson@alumni dot uct dot ac dot za
Shuaib.Parker@alumni dot uct dot ac dot za
mkeet@cs dot uct dot ac dot za