Dev:MultipleWords

Aus YaCyWiki
Wechseln zu: Navigation, Suche

global searching for multiple words

searching for more than one word via DHT is not easy. If you search for "yacy p2p searchengine", you ask three peers. Every peer returns i.e. 10 urls. But it can be, that there is not one url, which is in all three lists. So we cannot return a result.

Here should be discussed, how to solve this.

Reverse Index

If every Peer has a database with url->words_array entries, we would send all three peers all words, and the peers would check first, if all three words match.

Problem: Another big Database is need. Advantage: Deletion of old urls is possible. (->Recrawl)

asking the other Peers

All three peers get all three words, and try to find the top urls, which match their word. Then they ask the DHT-Peers for the other two word, if they know the top urls for their word.

Problem: It would generate a lot of traffic between the peers.

total Transfer

All three peers should send their complete urllist, and the searching peer can rank it locally with the three lists

Problem: A lot of traffic

Dynamic Search

by Piranah

It's just a brainstorming about how this problem could be 'resolved'.

caption

A = Asking Peer
P1 = AnswerPeer 1
P2 = AnswerPeer 2
P3 = AnswerPeer 3


A is searching 3 words ('sand', 'kies', 'skilanglauf') and sending them to the 3 peers.
P1 has just 2 of the searched words in his Index and sends them to A. P1 also sends a comment to his search result back to peer A in which he describes how many and which words he returns (e.g.: " words: 'sand' and 'kies')
P2 has all 3 words in his index and returns them as usual to the asking peer.
P3 returns only one word ('skilanglauf') and sends it to A, also including the comment described above.
Now A will resolve the answers from P1 and P2 and determine whether the links to the received words belong together.

Forum-Discussion (german)