Перейти к контенту

Блог команды AlterVega

  • запись
    121
  • комментария
    4
  • просмотр
    106 541

Поиск по форуму


AlterVega

1 637 просмотров

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

Прежде чем проектировать поисковую систему мы попытались выделить основные способы ее применения пользователями. В итоге у нас получились следующие use cases:

  • пользователь ищет нужную информацию, но еще не знает, где она может быть;
  • пользователь ищет нужную информацию, точно зная место ее расположения;
  • пользователь ищет нужную информацию в определенном разделе/контексте.

Также, проанализировав существующие решения, мы выдвинули следующие критерии к будущей поисковой системе:

  • поиск должен быть легко доступен с любой страницы системы;
  • доступность должна сочетаться с возможностью настраивать поиск под контекст страницы;
  • ситуация, когда ничего не найдено, еще не повод прекратить поиск вообще;
  • поисковая система должна быть едина, таким образом пользователь смог бы переходить от общего к частному и от частного к общему;
  • поиск должен учитывать морфологию;
  • поисковая система должна поддерживать различные поисковые технологии (MySQL FULLTEXT, Lucene, Sphinx, etc);

Имея сформулированные сценарии использования и требования к поиску мы приступили к его проектированию и реализации. Итогом этих работ стала поисковая система, которую вы можете наблюдать в продукте AlterVega. А теперь мы расскажем о тех особенностях, которые позволили эффективно реализовать сценарии в рамках требований к системе.

Размещение поля поиска в шапке

http://altervega.ru/forums/upload/forum/2012/01-11/6adb7c2f0a08e8c0031937c203f51f3b.png

Именно такое расположение позволяет сделать поиск доступным с любой страницы, так как шапка присутствует на всех страницах системы. Легко идентифицируемым и запоминаемым пользователь на подсознательном уровне обращает внимание на самый большой элемент шапки, отмечает для себя, что это форма поиска и теперь при необходимости что-либо найти он вернется к шапке и увидит там форму поиска на любой странице.

Зависимость поиска от контекста, в котором отображается поле поиска

http://altervega.ru/forums/upload/forum/2012/01-11/4c33faf71ad4396975254a029916aceb.png

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

Уточнение результатов поиска

Мы попытались найти эффективное решение для всех сценариев поиска, при этом не хотелось усложнять форму поиска, вводить "продвинутый режим", как это делают другие. И мы пришли к идее с уточнением результатов поиска с помощью фильтров. Первоначально пользователь видит все результаты поиска по всем разделам системы, при необходимости он может сужать область поиска, накладывая дополнительные условия на результаты.

http://altervega.ru/forums/upload/forum/2012/01-11/c6a6cc31f689a4c054876e6fed2efb63.png

При этом, если системе ничего не удалось найти, то она старается подсказать пользователю возможные действия для улучшения результатов поиска.

http://altervega.ru/forums/upload/forum/2012/01-11/f1325c666dfb1a5cdcd25ab26c07f222.png

Учет морфологии при поиске по системе

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

Мы включили базовую поддержку морфологии в AlterVega. Вы уже могли заметить как она работает на предыдущем скриншоте, однако, покажем еще раз на другом ключевом слове.

http://altervega.ru/forums/upload/forum/2012/01-11/f3c2f72b5ba0db0e18982842b92d0b31.png

Как вы можете видеть по ключевому слову "новость" система нашла 3 совпадения в поисковом индексе, при этом полного совпадения в результатах нет, система нашла совпадения по словоформам. В любой другой системе результатом поиска было бы сообщение об отсутствии результатов, а AlterVega успешно доказывает обратное.

Поддержка различных поисковых технологий

Поиск - ресурсоемкая операция, а качественный поиск еще и достаточно сложная алгоритмическая задача. В базовом варианте мы реализовали MySQL поиск по словесному индексу. Этот метод достаточно быстр и дает хорошие результаты. Однако при росте базы документов, а, соответственно, и поискового индекса, время и ресурсы, выделяемые на такой поиск, могут начать быстро расти. В таких случаях на помощь приходят специализированные решения: Lucene, Solr, Sphinx. Они спроектированы исключительно для решения задач поиска, имеют высокую производительность, возможность к масштабированию.

http://aveg.us/upload/forum/2011/12-13/0249ddaed4976047b39133f5371fd9fa.png

Поэтому мы разрабатывали поиск с учетом его дальнейшего расширения на популярные технологии. Так работа с поисковым backend'ом осуществляется через отдельный интерфейс, который может быть реализован разработчиком для подключения необходимого поискового решения.

Из коробки AlterVega уже содержит реализацию базового backend, backend для Zend Lucene и Sphinx backend.

Единство интерфейса

Конечно же страницы поиска не должены выпадать из общей концепции разработанного интерфейса. Компоновка страницы, визуальное оформление элементов результата поиска, стилистика вспомогательных инструментов - все выдержано в единой концепции. Это позволит пользователю быстро разобраться в возможностях поиска и использовать его максимально эффективно.

Надеемся, что вам понравится результат проделанной нами работы, а вашим пользователям также будет доставлять удовольствие использование поисковой системой форума AlterVega, как и нам.

0 комментариев


Рекомендуемые комментарии

Комментариев для отображения не найдено.

×
×
  • Создать...

Важная информация

Находясь на нашем сайте, вы соглашаетесь на использование файлов cookie, а также с нашим положением о конфиденциальности Политика конфиденциальности и пользовательским соглашением Условия использования.