mnoGoSearch: индексирование таблиц, сортировка

12
SP
На сайте с 07.07.2003
Offline
0
3884

Выбрал mnoGoSearch в качестве локальной поисковой системы сайта, так как система обеспечивает работу с различными кодировками, индексирование через файловую систему и индексирование БД.

После нескольких дней копания (документация оставляет желать лучшего) удалось запустить систему. Однако возникли проблемы с индексацией таблиц баз данных (htdb:/).

1. При переиндексировании таблиц записи, которые больше в них не входят, не удаляются из индекса, несмотря на то, что включена опция удаления несуществующих ссылок.

2. Система отказывается индексировать большие таблицы. Приходится накладывть LIMIT. Создалось впечатление, что при индексировании не учитывается SORT ORDER запроса.

3. Нет сортировки результатов по дате.

Сталкивался ли кто-нибудь с этими проблемами или недостатками системы. Если да, то буду признателен, если поделитесь опытом избежания / устранения.

LD
На сайте с 12.06.2002
Offline
71
#1

А насколько оправдано вообще индексирование БД напрямую? не лучше ли индексировать непосредственно веб-страницы? Проблем точно будет меньше :)

Кстати, поделитесь опытом: что Вы в итоге делаете с результатами индексирования именно БД?

SP
На сайте с 07.07.2003
Offline
0
#2

Все зависит от сайта. На нашем сайте публикации существуют в виде файлов (генерируются CMS), но форумы, blogs и коллеция ссылок показываются динамически. На настоящий момент на форумах сайта больше 120 000 сообщений. Осуществлять обычный поиск средствами SQL через LIKE - неэффективно. Генирировать 120 000 файлов, чтобы все это дело проиндексировать, кажется не совсем правильным. mnoGoSearch позволяет индексировать таблицы, имеющие PRIMARY KEY. В качестве ссылок храняться ссылки на скрипты, которые отображают содержание таблиц. К сожалению, в связи с упомянутым багом удается проиндексировать только 25 000 сообщений форумов. На одном из форумов нашел сообщение, что Карташов собирается исправить, но исправил ли - неизвестно (в stable version 3.1.21

баг сохраняется). Есть еще вариант скормить индексеру файл с ссылками, которые надо проиндексировать, но тогда это надо делать через HTTP, что жалко.

Поиск не отличается от поиска по по обычным страницам. Большое преимущество состоит в том, что можно представить один коплексный поиск по разным разделам сайта. (Выбор разделов осуществляется через категории, которые тоже можно задать в mnoGoSearch)

LD
На сайте с 12.06.2002
Offline
71
#3

Можно попробовать более позднюю версию: 3.2.10 работает вроде вполне устойчиво (во всяком случае, у меня), 3.2.12 не пробовал. Правда, как там с базами -- не знаю: я (благо, не так много) по http прямо страницы и скармливаю. А скормить файл со ссылками на скрипты по HTTP -- если mnogosearch на той же машине -- чего ж жалко-то? :) Ну, может, медленнее будет. Есть, правда, риск, что будет выдавать постоянно network error, если нагрузка на сервере большая (у меня такое было один раз)...

P.S. Максим Захаров, кстати, появляется здесь, может, он что подскажет...

M
На сайте с 29.03.2003
Offline
65
#4

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

1. здесь скорее всего дело не в mnogosearch, а в команде HTDBDoc, которая в любом случае возвращает ответ HTTP 200 вне зависимости от присутствия документа в базе.

2. Эт не проблема mnogosearch, вернее не совсем его. При выполнении команды HTDBList высасывается весь ответ сервера, а его выполение зависит от системы, хватит ли у неё ресурсов переварить такой ответ. Хотя возможно ещё на это влияет максимально возможный размер документа, по-моему в 3.1. он может изменяться только с перекомпиляцией.

3. чего нет, того нет.

В любом случае, советую пропробовать 3.2

Проверь свои запросы: Вершки Рунета (http://www.43n39e.ru/)
M
На сайте с 29.03.2003
Offline
65
#5
Как писал LakeDaemon
Можно попробовать более позднюю версию: 3.2.10 работает вроде вполне устойчиво (во всяком случае, у меня), 3.2.12 не пробовал.

Для 3.2.10 и более ранних версий есть эксплоит, дающий возможность выполнения команд через дырку в search.cgi, правда работающий только под Linux, но всё равно лучше проапгрейдиться.

LD
На сайте с 12.06.2002
Offline
71
#6
лучше проапгрейдиться

Спасибо за совет, так и поступим в ближайшее время.

SP
На сайте с 07.07.2003
Offline
0
#7

Это верно только для search.cgi или распространяется на PHP extensions тоже?

M
На сайте с 29.03.2003
Offline
65
#8
Как писал Sergeant Perecz
Это верно только для search.cgi или распространяется на PHP extensions тоже?

Не знаю, если php extensions CGI-запрос разбирают при помощи библиоткеки mnogosearch, то да, а если сами, то не известно.

Есть почтовые рассылки ru@mnogosearch.org и php@mnogosearh.org - их девелоперы наверняка читают. См. http://www.mnogosearch.org/list.html

M
На сайте с 29.03.2003
Offline
65
#9
Как писал Sergeant Perecz

3. Нет сортировки результатов по дате.

В текущей CVS версии 3.2.х добавлена возможность сортировки результатов по дате. Если хотите, можете поспробовать последний снапшот.

SP
На сайте с 07.07.2003
Offline
0
#10
Как писал Maxime


В текущей CVS версии 3.2.х добавлена возможность сортировки результатов по дате. Если хотите, можете поспробовать последний снапшот.

Насколько стабильна 3.2.x?

Исправлена проблема с индексацией больших таблиц?

Какие известны баги?

Насколько сложен процес миграции с предыдущей версии на новую?

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий