2016-09-22 3 views
0

У меня есть проект в школе, который мне нужен для создания поисковой системы с использованием инвертированного индекса, и я немного блокирован тем, как продолжить.запрос на индекс инвертированного файла

Я сохранил все слова, которые были в моих документах (4 документа), используя индекс инвертированного файла, но таким образом, каждое слово в определенном файле имеет строку, поэтому давайте скажем, что слово «нравится» может появиться в документе doc 2 три раза и doc 4 дважды, поэтому у него будет 2 строки, слово: например, docid: 2 hit: 3 instoplist: 0 и word: like docid: 4 hit: 2 instopelist: 0 (hit - это число, в течение которого слово появилось внутри 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

 Смежные вопросы

  • Нет связанных вопросов^_^