На сайте очень много контента, и ранее поиск по нему обслуживался встроенным поисковым движком, который имел ограниченные возможности и не всегда поэтому по запросу выдавал все результаты, какие есть.
Теперь в качестве поискового движка используется Elasticsearch, ведущее решение в своей сфере, которое используется в таких проектах с огромным массивом информации, как, например, Википедия. Было непросто, но мы справились
- В Elasticsearch поиск более точен, чем поиск, осуществляемый стандартными средствами MySQL, а также осуществляется гораздо более корректное ранжирование найденных результатов (в случае поиска по фразе).
- Elasticsearch быстрее. При стандартном поиске на время выполнения поискового запроса данные блокируются от изменений. Теперь такого нет и поиск не влияет на процесс чтения и постинга пользователей.
- Elasticsearch понимает языки. Если, к примеру, вы введете "машина", поиск также выдаст результаты, которые содержат слово "машин", понимая окончания и множественные числа.
- В отличие от встроенного поиска MySQL, теперь нет ограничений на минимальную длину слова, а также нет такого списка стоп-слов, по которым поиск не осуществлялся (сталкивались с этим на примере какого-то аддона, который в итоге не выдавался в поиске).
Рекомендуемые комментарии