Прямой доступ к БД mnoGoSearch через SQL запросы.

Alien

Новичок
Прямой доступ к БД mnoGoSearch через SQL запросы.

Имеются результаты работы паука - лежат в табличках dict и url.
Хочется их использовать напрямую, без внешего search.cgi и
без сборки php --with-mnogosearchoption

На отладочной машине включил лог sql запросов, и понял что сортирует он неизвестным науке образом:
(показан пример для Results per page=3)

PHP:
400 Query       SELECT url_id,intag FROM dict WHERE word='QUERY'

400 Query       SELECT rec_id,url,content_type,last_mod_time,title,txt,docsize,
last_index_time,next_index_time,
referrer,keywords,description,crc32,category FROM url WHERE rec_id IN (700,252,1119) ORDER BY rec_id

400 Query       SELECT rec_id,url,content_type,last_mod_time FROM url WHERE crc32=1271154873 AND (status=200 OR status=304 OR status=206)

400 Query       SELECT rec_id,url,content_type,last_mod_time FROM url WHERE crc32=-1318754820 AND (status=200 OR status=304 OR status=206)

400 Query       SELECT rec_id,url,content_type,last_mod_time FROM url WHERE crc32=-1715874146 AND (status=200 OR status=304 OR status=206)
Первый запрос (самый интересный) - отдает релевантность.
Второй - что показывать.
3,4,5 - добавочные URL-ы.

Смотрю результаты первого запроса

PHP:
mysql> SELECT url_id,intag FROM dict WHERE word='QUERY';
+--------+--------+
| url_id | intag  |
+--------+--------+
|      8 |  65538 |
|     20 |  65538 |
|     82 | 131074 |
|    250 |  65538 |
|    252 | 196614 | 
|    371 | 196610 |
|    397 |  65538 |
|    428 |  65538 |
|    438 |  65538 |
|    448 |  65538 |
|    699 |  65538 |
|    700 | 262150 |
|    701 |  65538 |
|    907 |  65538 |
|   1119 |  65538 |
+--------+--------+
15 rows in set (0.01 sec)
Как из этого можно построить WHERE rec_id IN (700,252,1119) ?
Видно, что сортируется не по intag - в порядке релевантости по mnogosearch это url-ы с номерами (700,252,1119,907,701,699,448,438,428,397)
То же самое с другими запросами.

Насколько понимаю, вся БД у него в базе.
Есть идеи?
 

svdesign

Guest
Скачай старый frontend mnogosearch к PHP, там они раньше делали напрямую запросы к БД без использования модуля.
 

Alien

Новичок
Скачал и изучил mnogosearch-php-3.1.2.5.tar.gz (отвратный код кстати).

Этот frontentd ищет точно так как я и предполагал - order by intag, что неверно.

mnogosearch сказал что:

No, intag is not relevancy. relevancy calculated "on-the-fly" when search query is performed and it's not stored in database.

Осталось понять с каким бубном писать запросы.
 

nail

Guest
В их мануале где-то был запрос. Он несложный.
Связываешь сущности dict и url с группировкой по url.url и сортировкой по count(*). То есть получается по количеству вхождений в dict для заданных keywords.
 
Сверху