Показать сообщение отдельно
  #1  
Старый 12.06.2011, 09:42
Новичок

Отправить личное сообщение для zhazhah Посмотреть профиль Найти все сообщения от zhazhah
 
Регистрация: 28.01.2011
Сообщений: 7

Поисковый индекс и его реализация
Здравствуйте
Пытаюсь сделать простой поисковик, для поиска по своему сайту, источник данных MySql (вообще это не важно)
дело в том что не пойму как реализован индекс и как по нему искать..

Кусок текста с документации Яндекс.Сервера
Код:
Для каждого слова в документе запоминается его позиция в виде идентификатора документа, 
номера предложения и номера слова в предложении. Список таких троек (словопозиций) хранится в 
файлах indexinv и indexkey. В этих же файлах хранятся зоны и атрибуты документов, используемые 
при поиске по зонам и атрибутам (например, html-заголовок или подпись к картинке), а также некоторая 
служебная информация. Кроме того, в файлах indexarc и indexdir по умолчанию сохраняется текст 
документов без элементов форматирования. Эта информация используется при поиске, если требуется 
получать отрывки текста документа, содержащие найденные слова.
Прочитав несколько глав из книги "Введение в информационный поиск" я понял что простейший индекс строится таким образом.

фраза->документ

Код:
книга 1 3 6...n  //т.е 1 3 6 это ID документа в котором встречается фраза.
поиск 3 5 9...n // и документов в которых встречается данное слово может быть очень много
вот и проблема как искать по этому файлу(индексу). Допустим что мы проиндексировали какой то сайт и получили около 600 тысяч фраз и каждая фраза встречается в документах от 1 до 90 тыс.
как искать по такому индексу?
правильно ли я всё расписал?
у меня одна мысль тупо читать файл и сравнивать((