Invision byte

4.3: Масштабируемые улучшения поиска и интерфейса

Поиск. Давайте будем честными - поиск не самая интересная функция в мире. Вы просто просите найти что-то и поиск покажет вам результаты того, что ему удалось найти. 

Просто, правда?

Всё намного сложнее. После многочисленных тестов, нескольких опросов и обсуждений с клиентами разработчики Invision Community решили, что нет "правильного" или "неправильного" поиска. Чем больше сообщество, тем больше проблем может быть с поиском, когда вы начинаете сталкиваться с техническими ограничениями базы данных.

В Invision Community 4.3 были рассмотрены все случаи применения поиска и добавлены несколько новых возможностей.

Поиск по продуктам и страницам

Продукты в приложении Коммерция и пользовательские страницы приложения Страницы теперь отображаются в результатах поиска.

Productsinsearchresults.png

Настраиваемый поиск

Одной из наиболее сложных проблем с поиском является область поиска. Если, например, вы ищите что-то, что видели ранее, вы можете максимально сузить область поиска - ведь вы знаете ключевое слово для поиска, осуществлять поиск только по заголовкам, искать только в определённой области контента и т.д. Однако, если вы просто выполняете общий поиск по определенному контексту, вы хотите, чтобы поиск был максимально широким - соответствие любому указанному в поисковой строке слову, поиск по всему сообществу, включая как заголовки, так и весь контент.

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

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

NewSearchUI.png

Это параметры:

  • Изменён выбор по умолчанию "Искать в" на "Везде", независимо от местонахождения пользователя.

  • Добавлена новая настройка, которая контролирует, какая опция будет установлена по умолчанию «Любые слова» или «Все слова».

  • Добавлена новая настройка, позволяющая регулировать осуществление поиска в заголовках или заголовках и контенте.

Вы можете установить оператор и/или по умолчанию.

NewSearchSettings.png

Elasticsearch

В Invision Community 4.3 добалвена встроенная поддержка сторонней поисковой системы Elasticsearch, которая предлагает ряд преимуществ по сравнению с поиском вашей базы данных MySQL:

  • Elasticsearch разработан не для хранения данных, а для поиска, и способен сопоставлять и сортировать по релевантности с большей точностью, чем MySQL.
  • Elasticsearch, как правило, быстрее. Один пользователь, выполняющий поиск, не замедляет других пользователей, которые пытаются читать и публиковать сообщения в одно и то же время (при поиске в MySQL данные должны быть «заблокированы» от изменений при выполнении поиска). Он очень хорошо масштабируется с очень большими наборами данных и работает очень легко на нескольких серверах.
  • Elasticsearch понимает язык. Если, например, вы ищете по слову «сообщество», он также будет возвращать результаты, содержащие слово «сообщества», понимая, что это то же самое. Поддерживаемые языки: Арабский, Армянский, Баскский, Бразильский, Болгарский, Каталанский, Китайский, Чешский, Датский, Нидерландский, Английский, Финский, Французский, Галисийский, Немецкий, Греческий, Хинди, Венгерский, Индонезийский, Ирландский, Итальянский, Японский, Корейский, Латвийский, Литовский, Норвежский, Персидский, Португальский, Румынский, Русский, Сорани, Испанский, Шведский, Турецкий, Тайский.
  • Elasticsearch поддерживает пользовательские функции в алгоритме подсчета очков. В первоначальной реализации в Invision Community это позволило добавить некоторые параметры, например ограничение по времени или авторский импульс (контент автора показать в результатах выше).
  • В отличие от MySQL, минимальная длина запроса и минимальный список стоп-слов отсутствуют.

ElasticsearchSettings.png

Если Elasticsearch включён, резульаты поиска и ленты активности будут извлечены из Elasticsearch. When enabled, both searches and activity streams will be retrieved from Elasticsearch. Таблица базы данных core_search_index в MySQL больше не будет заполняться, поэтому вам не нужно будет хранить данные дважды.

Чтобы использовать Elasticsearch, вы можете либо установить его самостоятельно на свой сервер, либо использовать любой из множества сервисов, предоставляющих услугу использования Elasticsearch. Минимальная требуемая версия Elasticsearch - 5.5.

REST API

Разработчики и те, кто хочет интегрировать возможности Invision Community в свои собственные сайты, с удовольствием узнают, что мы расширили REST API для поиска.

Оцените новость: 
Подписчики 0

Обратная связь


Комментариев нет



Присоединяйтесь к обсуждению

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

Гость
Добавить комментарий...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...

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