Как стать автором
Обновить
  • по релевантности
  • по времени
  • по рейтингу

Google тестирует полнотекстовый поиск по подкастам

Поисковые технологии *Звук
Ориентироваться в двухчасовых подкастах станет гораздо проще. Сервис Google Podcasts начал автоматически генерировать расшифровки аудиозаписей и использует их в качестве метаданных для поиска, сообщает Android Police. Это помогает не только найти нужный фрагмент в конкретном подкасте, но и найти нужный эпизод, даже если вы не помните его название или дату выхода.

Текстовая расшифровка эпизодов появилась в исходном коде страницы, в разделе веб-прослушивания на портале Google Podcasts, как показано на скриншоте под катом. Для запуска веб-прослушивания нужно специальным образом изменить ссылку на эпизод подкаста: https://www.google.com/podcasts?feed= в начале URL нужно заменить на https://podcasts.google.com?feed=. Тогда открывается веб-плеер. И вот там в исходниках страницы есть текстовая расшифровка.
Читать дальше →
Всего голосов 8: ↑6 и ↓2 +4
Просмотры 1.3K
Комментарии 6

На YouTube появился полнотекстовый поиск по видео

Облачные сервисы
Анонсированная в июне, на YouTube всё-таки появилась функция полнотекстового поиска по видеороликам. Видеоматериал публикуется вместе со специальным слоем метаданных, в котором и находится сопроводительный текст. Разработчики утверждают, что распознавание речи и создание слоя метаданных осуществляется автоматически. Таким образом, содержание видеозаписей теперь может быть легко проиндексировано поисковыми системами. Например, можно быстро находить запись каждой фразы, сказанной политиком в течение его жизни.

Пример с политиками приведён неспроста. Дело не только в том, что они часто противоречат сами себе на протяжении своей карьеры, и теперь это можно будет легко вскрыть. Дело ещё и в том, что в данный момент полнотекстовый поиск доступен только по избранным видеозаписям, посвящённым избирательной кампании в США: это проморолики Маккейна и Обамы также некоторые другие политические материалы. Полнотекстовый поиск по ним осуществляется со страницы You Choose.

Во время просмотра видеоролика с метаданными достаточно навести курсор на строку состояния, чтобы появился сопроводительный текст.
Всего голосов 1: ↑1 и ↓0 +1
Просмотры 921
Комментарии 12

Использование Tsearch2 в PostgreSQL 8.3

PostgreSQL *
Многим при реализации поиска по сайту приходится делать запрос к базе данных, использующий оператор LIKE или регулярные выражения.
С выходом PostgreSQL 8.3 модуль полнотекстового поиска tsearch2 был встроен в ядро системы (об этом ранее уже писалось на Хабре), и с его помощью можно реализовать поиск по базе данных, который будет более функционален. В принципе, в статье, указанной выше, приведен пример использования этого модуля, но хотелось бы поделиться опытом реализации полнотекстового поиска в реальном проекте.
читать дальше
Всего голосов 8: ↑7 и ↓1 +6
Просмотры 7.8K
Комментарии 6

Полнотекстовый поиск и его возможности

Разработка веб-сайтов *
Многие СУБД поддерживают методы полнотекстового поиска (Fulltext search), которые позволяют очень быстро находить нужную информацию в больших объемах текста.

В отличие от оператора LIKE, такой тип поиска предусматривает создание соответствующего полнотекстового индекса, который представляет собой своеобразный словарь упоминаний слов в полях. Под словом обычно понимается совокупность из не менее 3-х не пробельных символов (но это может быть изменено). В зависимости от данных словаря может быть вычислена релевантность – сравнительная мера соответствия запроса найденной информации.

В статье рассказывается как работать с полнотекстовым поиском на примере БД MySQL, а так же приведу примеры «нестандартного» использования данного механизма.

Читать дальше →
Всего голосов 81: ↑77 и ↓4 +73
Просмотры 156K
Комментарии 35

Алгоритмы организации тэгов

Разработка веб-сайтов *
Тэги – неотъемлемая часть всех современных сайтов и косвенный признак принадлежности сайта к пресловутому Вэб-Два-Ноль.

В статье я хочу рассказать об способах и алгоритмах тегирования информации.
Читать дальше →
Всего голосов 42: ↑39 и ↓3 +36
Просмотры 24K
Комментарии 48

AdMe.ru: Тэги, полнотекстовый поиск и всё такое…

Разработка веб-сайтов *
В этой статье я открою секреты того, как работает adme.ru, а именно я расскажу о том как устроено хранение статей и тэгов, как работает полнотекстовый поиск, поиск по тэгам и всё такое…

В статье приведён пример структуры таблиц, рабочий конфиг Sphinx и немного php кода с примерами выборок.
Читать дальше →
Всего голосов 71: ↑64 и ↓7 +57
Просмотры 6.7K
Комментарии 32

Быстрый полнотекстовый поиск в Rails приложениях

Ruby *
Рано или поздно перед каждым сайтом (будь то социальная сеть, форум, блог или еще какое-то хранилище информации) возникает проблема поиска. Каждый разработчик решает эту проблему по-своему: одни пишут свои решения, другие используют готовые встраиваемые поисковики, третьи используют внешние решения, например сервисы от Google.

В этой статье мне хотелось бы рассказать о таком средстве поиска, как Ferret, и о том, как просто использовать данное решение в своем Rails-приложении.

и что же такое ferret?
Всего голосов 42: ↑36 и ↓6 +30
Просмотры 5.5K
Комментарии 15

Древовидные СУБД

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

Поскольку любая компьютерная система с целью оптимизации обмена производит обмен между памятью и диском в виде блоков, то атомарным элементом, хранящим данные на диске, является блок. Ни для кого не секрет, что многие СУБД (тот же ORACLE и MSSQL) фактически хранят данные в Б-деревьях. Б-дерево – это набор логически связанных блоков, выстроенных в иерархию, на каждом уровне которой определены блоки, у каждого из которых одинаковое количество уровней потомков. Описание алгоритма работы Б-дерева выходит за рамки данного блога.

Реляционный, объектный или прямой доступ обеспечивается логической моделью. Попробую предположить, что разумное использование логической модели данных, максимально приближенной к фактическому хранению – позволит более просто и быстро обрабатывать низкоуровневые данные, чем использование других логических моделей(SQL и пр.), хотя и существенно повышаются требования к уровню разработки механизмов доступа к данным. Возможно, что прямой доступ может быть представлен логическим деревом. Примером логического дерева данных – является глобал в СУБД Cache.

Приведу несколько примеров использования, из личного опыта, древовидных структур данных (глобалов).
Читать дальше
Всего голосов 19: ↑12 и ↓7 +5
Просмотры 1.5K
Комментарии 24

Полнотекстовый поиск по сайту — бич современного интернета

Разработка веб-сайтов *
Реализация хорошего поиска по сайту — часто сильно недооцененная по сложности задача. Поиск является слабым местом сайтов настолько часто, что когда я вижу строку поиска, у меня сразу же возникает предвзятое ощущение предстоящего фиаско. И чтобы лишний раз не расстраиваться, я сразу переадресую свой вопрос гуглу или яндексу и быстро нахожу то, что требовалось. Что же делать, чтобы как-то улучшить эту ситуацию?
ответы
Всего голосов 76: ↑64 и ↓12 +52
Просмотры 26K
Комментарии 57

Индексирование и поиск с помощью Xapian в .NET

.NET *
Если слово Xapian вам незнакомо, рекомендую ознакомиться с небольшой статьей.
Вкратце же, Xapian — представляет собой написанный на с++ набор инструментов для индексирования текстовой информации, с возможностью поиска по базе индексированной информации. Для работы не требует установленного сервера, достаточно наличия его библиотек. Может обрабатывать огромные массивы информации(проверено до 1.5Тб), измеряемой миллионами документов. Является конкурирующим продуктом Sphinx и Apache Lucene.
Мной он был выбран из этих трех продуктов за возможность использования из .Net.

Пробуем
Всего голосов 36: ↑30 и ↓6 +24
Просмотры 3.6K
Комментарии 31

Полнотекстовый поиск в InnoDB

MySQL *
Из песочницы
Привет, Хабрачитатель!
Полнотекстовый поиск данных в InnoDB – это известная головная боль многих разработчиков под MySQL / InnoDB. Для тех, кто не в курсе дела я объясню. В типе таблиц MyISAM есть полноценный полнотекстовый поиск данных, однако сама таблица исторически имеет ограничения, которые являются принципиальными в отдельных проектах. В более «продвинутом» типе таблиц InnoDB полнотекстового поиска нет. Вот и приходится мириться бедным разработчикам либо с ограничениями MyISAM, либо с отсутствием поиска в InnoDB. Я хочу рассказать о том, какие есть способы организовать полноценный поиск в InnoDB без магии и исключительно штатными средствами. Также будет интересно сравнить скоростные характеристики каждого способа.
Читать дальше →
Всего голосов 79: ↑73 и ↓6 +67
Просмотры 35K
Комментарии 55

Быстрый полнотекстовый поиск ElasticSearch

Разработка веб-сайтов *
Из песочницы
image
При разработке высоконагруженных сайтов или корпоративных систем частенько возникает проблема с разработкой быстрого и удобного поискового движка. Ниже перечислены наиболее важные, на мой взгляд, требования к такому движку:

  • Скорость
  • Простота установки и настройки
  • Цена (желательно бесплатно и с открытым кодом)
  • Обмен информацией в формате JSON (по HTTP)
  • Масштабируемость (возможность распределения на несколько серверов)
  • Индексация в режиме реального времени
  • Multi-tenancy (гибкость в настройках под индивидуального пользователя)
  • Возможность переноса системы в облако

Хочу рассказать вам о новом поисковом движке Elasticsearch, который полностью удовлетворяет всем этим требованиям. В статье будет краткое описание, ссылка на авторитетную презентацию, а также описание установки и работы с ним.
Читать дальше →
Всего голосов 69: ↑63 и ↓6 +57
Просмотры 210K
Комментарии 61

Поисковый движок IndexTank передан в open source

Поисковые технологии *
В октябре 2011 года профессиональная социальная сеть LinkedIn купила компанию IndexTank, которая занимается производством поисковых технологий. Очевидно, приобретена в первую очередь команда профессионалов под началом известного специалиста Диего Баша (Diego Basch), он же основатель и генеральный директор IndexTank, а в прошлом — один из ведущих разработчиков Inktomi. Как иногда бывает в таких случаях, прошлые продукты компании решили передать в open source. Диего Баш объявил, что исходные коды программного обеспечения IndexTank опубликованы под свободной лицензией Apache 2.0 и выложены на github.

indextank-engine: индексатор
indextank-service: API, BackOffice, Storefront и фреймворк Nebulizer для управления индексами

Поисковый движок IndexTank используется на многих крупных сайтах, в том числе Reddit, Wordpress (плагин для Wordpress) и BitTorrent. Он обеспечивает индексацию контента в реальном времени, поиск с учётом геолокации и т.д.

Программные интерфейсы позволяют разработчикам встраивать поиск IndexTank в свои приложения на Ruby, Java, .NET, Python, PHP и т.д. Документация по API здесь.
Всего голосов 31: ↑27 и ↓4 +23
Просмотры 2.7K
Комментарии 13

Релиз MongoDB 2.4

NoSQL *MongoDB *
Сегодня состоялся релиз финальной версии MongoDB 2.4. Одна из новых возможностей — поддержка полнотекстового поиска с морфологией и стоп-словами. Правда, пока только в экспериментальном режиме. Среди 15 поддерживаемых языков есть и русский, что очень радует.

Ещё одно заметное изменение — смена движка javascript. Вместо SpiderMonkey теперь используется V8. Довольно логичный шаг, теперь было бы неплохо посмотреть сравнительные тесты map-reduce.

Также можно отметить улучшения в индексировании и выборке гео-данных.

И ещё одно крупное изменение: добавление ролей пользователей и привилегий(read, readWrite, dbAdmin, clusterAdmin и т.д.). Посмотрим, что из этого выйдет.

Полный список изменений

Меня порадовало, что вместе с основным релизом вышла новая версия драйвера для C# с поддержкой новых возможностей.

Драйвер C#
Всего голосов 55: ↑52 и ↓3 +49
Просмотры 8.9K
Комментарии 9

Система сбора отзывов Cackle Reviews с полнотекстовым поиском

Блог компании Cackle Разработка веб-сайтов *PostgreSQL *Sphinx *Разработка под e-commerce *
Всем привет! Не так давно мы реализовали полнотекстовый поиск для системы сбора отзывов Cackle Reviews. Получилось здорово, теперь любой модератор за несколько миллисекунд может найти интересующие его отзывы по слову или предложению с поддержкой стемминга (нечёткого поиска по части слова или его словоформам). Всё это работает на Sphinx — системе полнотекстового поиска.

В интернете есть много статей о Sphinx, но, к сожалению, часть из них устарела, некоторые другие не претендуют на полный и точный how to. Так что в данном посте мы постарались изложить все шаги — установки, настройки, индексации и поддержке дельта индекса.

система отзывов Cackle Reviews с полнотекстовым поиском

Читать дальше →
Всего голосов 26: ↑23 и ↓3 +20
Просмотры 11K
Комментарии 14

Sphinx distribute. Ускоряем поиск

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

Одна из неприятных особенностей Sphinx'а — очень скудная информация на русском языке. Удивишись тем, что тема распределения нагрузки не была затронута, решил поделиться данным решением на Хабре.

Цель: повысить производительность Sphinx путём разделения нагрузки на несколько потоков.
Решение
Всего голосов 11: ↑9 и ↓2 +7
Просмотры 14K
Комментарии 6

Python Meetup 28.08.15: полнотекстовый поиск и Europython 2015

Блог компании Wargaming Поисковые технологии *Open source *Python *
Tutorial
Всем привет!

Спешим поделиться видео с августовского Python Meetup. В этот раз мы прослушали два доклада: один про реализацию полнотекстового поиска при помощи Python, а второй — обзор конференции Europython 2015 из уст очевидца.

Приятного просмотра!


Читать дальше →
Всего голосов 17: ↑14 и ↓3 +11
Просмотры 9.5K
Комментарии 5

Полнотекстовый нечеткий поиск с использованием алгоритма Вагнера-Фишера

Программирование *Алгоритмы *
Из песочницы
Статья написана об использовании алгоритма вычисления расстояния Левенштейна для нечеткого поиска в тексте, без использования вспомогательного словаря.

Расстояние Левенштейна используется для сравнения двух слов или двух строк, чтобы определить их схожесть. Некоторое время назад передо мной встала схожая задача — в заданной строке искать вхождение слов, словосочетаний и формул, похожих на образец.
Читать дальше →
Всего голосов 23: ↑21 и ↓2 +19
Просмотры 21K
Комментарии 7

Разрабатываем систему real-time fulltext-поиска по error-логам на основе ClickHouse от Яндекса

Open source *Программирование *Разработка под Linux *
UPDATE из будущего: Не используйте этот подход! Для поиска логов намного лучше подходит простой поиск по регулярному выражению или подстроке встроенными средствами ClickHouse. Эта статья была написана давно, как интересный эксперимент, и у меня на тот момент не. было полного понимания того, как ClickHouse работает и как его лучше всего готовить. Я вас предупредил. Привет участникам телеграм-чатика «ClickHouse не тормозит»!

В этой статье я расскажу о том, как разработать систему для индексирования и полнотекстового поиска error-логов (или любых других логов) на основе СУБД от Яндекса под названием ClickHouse. Про саму базу Яндекс писал на Хабре сначала когда база была закрытой, а потом когда они её заопенсорсили. База данных в первую очередь предназначена для аналитики и для реализации сервиса Яндекс.Метрика, но может на самом использоваться для чего угодно, если вам подходит загружать данные пачками, удалять их тоже огромными пачками и никогда не обновлять отдельные строки.

Что мы будем делать


Мы будем реализовывать систему для индексирования и поиска по error-логам. При этом, считается, что сами логи вы уже сумели доставить на центральный сервер (или несколько серверов) и уже засунули сами тексты сообщений в базу, то есть у вас уже есть таблица в какой-нибудь базе данных примерно следующего вида:

CREATE TABLE Messages (
    message_id BIGINT PRIMARY KEY AUTO_INCREMENT,
    created_ts DATETIME,
    message_text BLOB
)


Мы научимся быстро отдавать результаты поиска по такому логу (то есть, всегда отсортированные по времени) и индексировать его в режиме реального времени.

Читать дальше →
Всего голосов 41: ↑37 и ↓4 +33
Просмотры 27K
Комментарии 14

Быстрый полнотекстовый поиск в Redmine

Блог компании Southbridge Help Desk Software *Управление проектами *
image redmine-logo

image elastic-logo

У нас используется система управления проектами и задачами Redmine. Мы продолжаем допиливать ее под свои нужды, чтобы повысить удобство работы и расширить функционал. Очередной задачей стало ускорение поиска.

С тех пор как количество задач в Redmine выросло до нескольких сотен тысяч, время на обработку поискового запроса стало занимать десятки секунд, что недопустимо долго для нас. Поэтому мы решили внедрить полнотекстовый поиск на основе Elasticsearch. Про это и будет данный пост.
Читать дальше →
Всего голосов 14: ↑13 и ↓1 +12
Просмотры 6.2K
Комментарии 0
1