2016-09-22 85 views
0

我在學校有一個項目,我需要使用倒排索引創建一個搜索引擎,並且我有點被阻止瞭如何繼續。在倒排文件索引上查詢

我使用倒排文件索引存儲了我的文檔中的所有單詞(4個文檔),但是通過某種方式,每個單詞在特定文件中都有一行,因此可以說文檔2中出現「like」三次和doc 4兩次 - 所以它會有2行,字:像docid:2命中:3 instoplist:0和word:像docid:4命中:2 instopelist:0(命中是這個詞出現在內部的次數doc和instoplist,如果它是停止列表中的單詞的一部分)。

現在我需要能夠查詢該索引。 可以說我需要找到 - 汽車和(摩托車或自行車) 這是最好的方式來做到這一點?我該如何編寫搜索的順序?我怎麼知道先拿摩托車和自行車,然後在他們之間做'或'然後做'和'與車?

* PS-使用PHP編寫代碼

我歡迎任何形式的幫助,

感謝

回答

2

您可以使用含車(文件工會含摩托車文檔路口或自行車)

汽車:DOC1,DOC2,doc3的

摩托車:DOC1,DOC4

自行車:DOC1,DOC2

所以你的文件最終名單應該DOC1,DOC2

在PHP中尋找交集和並集。 比方說,你有3個數組$車,$摩托車和$自行車含有這些詞

<?php 

    $car = ['doc1','doc2','doc3']; 

    $motorcycle = ['doc1','doc4']; 

    $bicycle = ['doc1','doc2']; 

    $intersect = array_merge($motorcycle, $bicycle); 
    $result = array_intersect($car , $intersect); 


    for($x = 0; $x < count($result); $x++) { 
     echo $result[$x]; 
     echo "<br>"; 
    } 

?> 
+0

我的問題是更多的我怎麼現在這說法我必須先去的文件,什麼是他們之間的操作 – user3488862

+0

首先,你必須找到摩托車和自行車的聯合。然後,你需要找到路口。 – sourabh1024

+0

這裏是的..但在不同的聲明不一定......所以我的問題是我怎麼知道? – user3488862