Глобальный поиск
Во время первоначальной фазы разработки IP.Board 3 одной из первой областей, которой необходима глобальная ревизия, была поисковая система. В Invision Power Board 2 каждое приложение требовало собственного поискового механизма, что создавало множество «зацементированных» данных, по которым достаточно сложно было что-либо искать. В IPB 3 будет представлена новая глобальная поисковая система, которая позволит сделать все содержимое вашего сообщества легко доступным для поиска, независимо от того, где содержимое находится. Вы будете иметь возможность показывать результаты как из всех приложений одним списком, так и фильтровать результаты по отдельным приложениям.
Одной из наших основных целей в IP.Board 3 является увеличение интеграции между всеми нашими продуктами так, чтобы они были более связанными, нежели в IPB 2.x. Новая поисковая система это лишь один пример нашей работы в этом направлении. Однако мы не хотели бы, чтобы эта интеграция применялась только к нашим продуктам, потому авторы модификаций смогут использовать данную систему и в своих приложениях. При использовании простой системы плагинов разработчики смогут подключать контент своих приложений к общему поиску.
Новая поисковая система так же будет более проста и легка в использовании. Новый «Расширенный поиск» будет более дружелюбным по сравнению с поиском в Invision Power Board 2 благодаря более простому способу указания того, что вы ищите. Другими словами, если вы будете находиться в разделе, он будет искать по разделу, если в теме — по конкретной теме, если в галерее — по конкретной галерее и так далее. Форма быстрого поиска также будет включать «живой поиск» который будет динамически подгружать результаты поиска уже при вводе поискового слова. Более того живой поиск будет контекстно-зависимым. Другими словами, если вы будете находиться в разделе он будет искать по разделу, если в теме — по конкретной теме, если в галерее — по конкретной галерее и так далее. Так же в результатах живого поиска будет ссылка на поиск по всем приложениям в системе, если он будет вам необходим. И конечно же будет опция позволяющая полностью отключить живой поиск, если он вам будет не нужен.
Немаловажной проблемой является и вопрос производительности нашей текущей поисковой системы. Наша новая система стремится решать эту проблему сразу несколькими способами. Во-первых, путем создания глобального поискового индекса, что позволяет реализовать те самые возможности, о которых я рассказывал ранее. Данный поисковый индекс намного проще и быстрее для обработки поисковой системой, нежели поиск по всей таблице сообщений. Таким образом поиск теперь не будет производиться напрямую по таблице сообщений, тем самым больше не будет проблем с блокированием (lock) таблицы при поиске. Для уменьшение дискового пространства и увеличения скорости поисковый индекс будет содержать упрощенную версию содержимого, не содержащую какой либо разметки.
Во-вторых, для увеличения производительности поиска, наша поисковая система будет идти по-умолчанию с поддержкой Sphinx. Хотя вам все же необходимо будет самостоятельно установить Sphinx, однако, сделав это в самом IP.Board 3, вы без труда сможете подключить его, просто изменив опцию в АЦ. Так же вы сможете удалить полнотекстовый индекс из таблицы сообщений при использовании нового поискового индекса или Sphinx, что позволит вам существенно уменьшит расходы на хранение таблицы сообщений.
Использование нового поискового индекса так же добавит улучшения и для других частей форума, такой как «Новые сообщения». Просмотр новых сообщений будет включать любой тип содержимого, который можно найти на форуме, так вы увидите новые сообщение на форуме, новые изображения в галерее, записи в блогах и тому подобное. Конечно же есть и другие улучшения, но мы оставим их для будущих записей.