Transcript poster

PEER TO PEER FULL TEXT SEARCH
Tanya Finkel and Viktor Antonov
Under supervision of Maksim Girevich
Today, as information becomes infinitely large, there is a
growing need for accurate data search over the internet. Until
now we have local Full Text Search only. This is a weak point of
it.
The main purpose of this is to resolve this problem by extending
Full Text Search using peer to peer. In the beginning of the
project we implement desktop search like Google one, and than
extension to Network Full Text Search implemented by P2P
system.
Searching System
Expand searching in the network
Search only in the local folders
Merging algorithm
•
•
•
•
search the local results
search the network search result
for each result :X count number of queries words and
calculate the new score
compare number of word parameter and score between
results and order it descending
Local search
results
Merging
results
Network search
results
Network search algorithm
Once you have entered the query and pressed the “Network
Search” button the following things are performed:
 Created an order which contains: the query, your NRS port
number, your IP address, time to live and your peer details.
 The order is sent through the JXTA connection by JXTA
message. By using message details JXTA prevents circles.
 Once the order was caught by another peer (program) it reduces
TTL, JXTA checks message whether this message had been
caught earlier ,extracts order from the message and passes the
message over.
 Once the order was received by message through JXTA
connection, it is entered into queue of other orders. The queue is
FIFO .Dispatcher is on duty to get it out from the queue.
Peer
Peer
Peer To Peer Connection
JXTA






When dispatcher gets the order, it creates the appropriate thread
task that treats the order. The treatment is as follows:
Searching the query in local history, if there’re no results in
history cash, the search is as local search (see local search).
After searching the filtration is performed (removes results that
not for public view).
In this step we have a Vector of Results that we transform into
Vector of NetworkResults. To each NetworkResult we add
current peer ID, so in the future we can download from this peer
a result file.
Now the peer (program) connects to the NRS from where the
order came and sends the Vector of NetworkResults when
connection is established.
Once NRS received NetworkResults merges with already existing
results (see result merging).