Здравствуйте
Пытаюсь сделать простой поисковик, для поиска по своему сайту, источник данных MySql (вообще это не важно)
дело в том что не пойму как реализован индекс и как по нему искать..
Кусок текста с документации
Яндекс.Сервера
|
Код:
|
Для каждого слова в документе запоминается его позиция в виде идентификатора документа,
номера предложения и номера слова в предложении. Список таких троек (словопозиций) хранится в
файлах indexinv и indexkey. В этих же файлах хранятся зоны и атрибуты документов, используемые
при поиске по зонам и атрибутам (например, html-заголовок или подпись к картинке), а также некоторая
служебная информация. Кроме того, в файлах indexarc и indexdir по умолчанию сохраняется текст
документов без элементов форматирования. Эта информация используется при поиске, если требуется
получать отрывки текста документа, содержащие найденные слова. |
Прочитав несколько глав из книги "Введение в информационный поиск" я понял что простейший индекс строится таким образом.
фраза->документ
|
Код:
|
книга 1 3 6...n //т.е 1 3 6 это ID документа в котором встречается фраза.
поиск 3 5 9...n // и документов в которых встречается данное слово может быть очень много |
вот и проблема как искать по этому файлу(индексу). Допустим что мы проиндексировали какой то сайт и получили около 600 тысяч фраз и каждая фраза встречается в документах от 1 до 90 тыс.
как искать по такому индексу?
правильно ли я всё расписал?
у меня одна мысль тупо читать файл и сравнивать((