Ratwist

Рейтинг
0
Регистрация
30.01.2006
lagif:
Кроме того, окончательный алгоритм придумываете в конечном счете вы, и мы... хе-хе, "люди с опытом", в детали не посвящены, а телепаты - большая редкость.
Что такое у вас w1, w2....?

Пару топиков выше я писал, что w1,w2 - это вес слова в документе с ID

идентификатором.

Я получил ответы на все свои воросы. Спасибо всем за ответы.

lagif:
Ratwist,
Э-э... я смотрела невнимательно, и не вдумывалась, куда какие поля в индексе, то есть не разглядывала.
но, в общем, думаю, вы алгоритм будете еще усложнять.

Можно более конкретно, вы же люди с опытом. То что я описал на php сделать реально или лучше перейти на C++? Так как я понимаю группировать и сортировать подобные индексы придется средствами языка, а не средствами самой Mysql. Или может лучше не заморачиваться и делать простой индекс

word1, id1, w1

word1, id2, w2

word1, id3, w1

word2, id1, w3

...

Получается избыточный индекс, к тому же еще и не отсортированный.

Не совсем понятно что пишется в поле "weight".

weight - это вес слова в документе.

А как насчет вопроса №2?

lagif:
2) мое мнение - можно. пока не разглядишь...

Не совсем понятно, пока не разглядишь чего?

У меня 3 вопроса по теме:

1) При создании индекса (id_word, id_obj, weight) размер индекса становится больше, чем индексируемый текст, на 300 кб упакованного текста приходится 1.5Мб индекса , где id_word - уникальное 8 байтное число, являющееся результатом хеширования слова. Как можно уменьшить это число, например, до 4 байт или даже меньше? Кажется, где-то на форуме itman писал, что у него идентификаторы слов размером 4 байта. Какую для этих целей выбрать хеш-функцию? Я делаю с помощью CRC32.

2) База Mysql. Можно ли создать в ней индекс такого типа:

id_word, {id_obj,weight}{id_obj,weight}...

где {}{}... - одно поле, где данные представлены в бинарном виде (blob-поле).

Вернее, вопрос не в том как создать, а как это можно использовать средствами MySQL и PHP при выборке и группировке.

В PHP Inside #7 2004 упоминалось, что в MnoGOSearch есть blob-режим, и что в нем используется именно такая схема, если я правильно понял. Как там это реализуется?

3)Где лучше хранить заархивированные тектсы в БД или на жестком? В упакованном виде они весят ~50b - 1kb. Поисковик локальный.