This GUI based search engine helps you to deploy your own local search engine in a very fast and convenient way. It parses the data for which you want to search for in the near future and support the features like Search As You Type, Recommendation and Ranking.
The Search Engine is composed of three main parts. The first part is the MainPage. On this page, you could see the search engine you've already created, the table and attributes that you parsed for this search engine. You could also add, delete, modify the search engine as you want. I will do a demo later to fully explain the functionality.
The second part is the Parser. The parser connect to the Server through ssh tunneling, then connect to the database that resides on this server. Retrieve the database infomation such as database name, database table names, attribute names. Keeping track of these information in a file named config.ini, and another file serverConfig.ini which keeps the server information and upload both files to the server. The C++ executable will need those two config files to parse the data sets.
The third part is the Searcher. It supports search-as-you-type feature just like what Google does. In order for the searcher to know what attributes the user want to search during the parsing phase, the searcher first retrieve the info. from the serverConfig.ini. Then the searcher opens up a TCP connection to the server which listens on a specified port. I am using port forwarding so that no matter what port number I am using on the local machine, it will forward the request to that port listening on the server. Then, what you just typed in the search bar will be sent to the searcher and you will get some formats of results back which are some record IDs. Finally, you pull out the record from the database then display these records to the user.
Start the program, it will bring you to the main page

Right now, you have not created any search engine. Therefore, click the "Create a new Search Engine" button. This will bring you to the following window where I have fill out the required authentication information in order to access the server as well as the database. The default for the database location is localhost and database port number is 3306.

Click the "Connect to Server" button. It will bring you to that server over SSH tunneling. You will be asked to select a path on the server in which you want to keep your search engine in as well as the supporting files.

When you are done choosing the path. Click "Open" button. Then it will display all the databases reside on that server.

Choose a database you want by just clicking that button. It will pull out all the tables in that database. Here we choose the ColumbuScout databases where we have over 1.7 million data in there.

Choose a table that you want to parse by clicking that button. We choose dblp_pub_new button here for demo purposes. This will bring you to the following page.

Our program identifies the primary key automatically from every table. Choose the attributes that you would like to parse by checking the box as well as the columns you want display only. After that, click the "Parse" button.

Then, it will bring you to the following page.

About 30secs to 1mins, it will tell you that the parsing is done. And now you could either go to the searcher or go back to the mainPage. Here we just go directly to the searcher by clicking the button "Go to Searcher". And it will bring you to the following page.


Now you could start your search process just like what you did in Google. For example, we want to search "ADMA", it will show you the following related fields

You could also do a exact search by typing "ADMA year==2011" which tells the searcher that only show record that is from year 2011.

Now, let's go back to the mainPage see what is there.

This is basically what I'm working on right now. The next step is to make the UI more professional and support many
to many table parsing. If you want to know more about me, please refer to my CV which can be found here
[
]