Skip to content

MohammadForouhesh/InvertedIndex

Repository files navigation

INVERTED INDEX SEARCH ENGIN

1. Report

Early Plan

first, I was trying to write the whole project in python3.5 and with the aid of the Wiley book, Algorithm and > Data structure in python, and I read the book up to end of chapter 8: trees, and I have built my code on that book basic, many expertise of python programming like annotation and decorator which supports in python3.5.2 had been used in this period and code developed practical, clean, designed, but snails, which takes about 2 weeks to complete, and are stored in my github repo: DataStructure_Python, in implementing TST and TrieST I have used the another famous book, Algorithm.4ed published by Addison-Wesley, which was written java friendly, I used its algorithm to developed my code.

Middle Plan

in middle of the project I decided to write the whole project in Jupyter notebook, it was challenging and also fun. but if you (like me) don't have a relible memory for remembering all of the methods for a class or variables, interacting with Jupyter gets hard.

Final Product

after the backend of the project completed, I should begin to implement the Graphical user interface (GUI), first I started to learn basic of Tkinter layout manager, but after a day or two, I gave up and search for something like swing in python, so I found Jython (an extinct project !!!!!) unfortunately Jython just support python2.7, but that was not a bad news because python2.7 was my first programming language that I learned. I translate all of my code in python2.7 and start coding in Jython with Jython compiler. after a while a faced with some frightening exception like "instance error" or "null pointer exception" or "java.lang.Runnable exception". But fortunately I overcame them finally and the whole project survive.

dependencies:

to run the project you need jython compiler, you can install this via this command:

`sudo apt-get install Jython`

to open jupyter notebook you should donwload this packages:

`sudo apt-get install anaconda3`

`sudo apt-get install ipython-notebook`

`sudo apt-get install jupyter`