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

Полнотекстовый поиск в веб-проектах: Sphinx, Apache Lucene, Xapian

Разработка веб-сайтов *
Полная авторская верcия из моего блога. Оригинал материала написан специально для Developers.org.ua

Наверное любой современный веб-проект сложно себе представить без… без контента! Да, именно контент в разных его проявлениях сегодня «правит бал» в различных веб-проектах. Не так важно — создаваемый пользователями или получаемый из других источников автоматически — информация является основной любого (ну, или почти любого) проекта. А раз так — то вопрос поиска необходимой информации стоит очень остро. И острее с каждым днем, ввиду стремительного расширения количества этого самого контента, в основном за счёт создаваемого пользователями (это и форумы, и блоги и модные нынче сообщества, вроде Habrahabr.ru). Таким образом, любой разработчик, реализующий сегодня какой-либо проект, сталкивается с потребностью реализовать поиск в своём веб-приложении. При этом требования к такому поиску уже намного сложнее и шире, чем даже год-два назад. Конечно, для каких-то проектов вполне подойдёт и простое решение, к примеру, вполне можно использовать Custom Google Search. Но чем более сложное приложение, и чем сложнее структура контента, если требуются особые виды поиска и обработки результата, или же просто количество или формат данных в вашем проекте особый, вам потребуется собственная поисковая система. Именно своя система, собственный поисковый сервер или сервис, а не сторонний, пусть даже гибкий и настраиваемый. Но что же выбрать, и вообще — какие сейчас на рынке есть поисковые проекты, которые готовы для использования в реальных проектах, не исследовательских или научных, а реальных бизнес-приложениях? Далее мы кратко рассмотрим различные варианты поисковых решений, пригодных для встраивания в ваше веб-приложение или развёртывания на собственном сервере.
Читать дальше →
Всего голосов 3: ↑3 и ↓0 +3
Просмотры 52K
Комментарии 62

Отчет с конференции Lucene Revolution

Поисковые технологии *
В начале октября мне удалось побывать на конференции Lucene Revolution, которая проходила в городе-герое Бостоне. Эта конференция была посвящена открытым поисковым технологиям Apache Lucene и Apache Solr. Мне кажется, что на хабре в частности и в рунете в целом этим технологиям уделяется незаслуженно мало внимания. Давайте исправим это упущение.

Читать дальше →
Всего голосов 41: ↑38 и ↓3 +35
Просмотры 3.7K
Комментарии 10

NoName Podcast S04E05

Я пиарюсь

Вместо вступления


Подкаст вышел с опозданием, поскольку мы ждали, когда мне вернут микрофон. На момент записи его так и не отдали, поэтому меня слышно не очень хорошо, выводы сделали, своих ошибок повторять не будем.
Таинственный образом с хабра пропал «подкаст», поэтому слушайте нас на rpod-е.
Читать дальше →
Всего голосов 33: ↑29 и ↓4 +25
Просмотры 852
Комментарии 1

Easyweb: Новогоднее обновление

Разработка веб-сайтов *XSLT *
В моем предыдущем посте, представившем многоуважаемой публике веб-движок Easyweb, было сказано:
Планируется, что первая версия, которую можно будет назвать стабильной и полностью юзабельной, появится до конца года.

Поскольку до конца года осталось менее суток, то позвольте рассказать о том, что еще удалось сделать в этом году.

Читать дальше →
Всего голосов 12: ↑7 и ↓5 +2
Просмотры 7.6K
Комментарии 9

Дайджест интересных новостей и материалов из мира PHP за последние две недели №13 (12.03.2013 — 25.03.2013)

Блог компании Zfort Group Разработка веб-сайтов *PHP *


Предлагаем вашему вниманию очередную подборку с ссылками на новости и материалы.

Приятного чтения!
Читать дальше →
Всего голосов 86: ↑73 и ↓13 +60
Просмотры 27K
Комментарии 21

Elastic Search в enterprise-проектах

Блог компании 2ГИС Разработка веб-сайтов *Поисковые технологии *
В рамках этой статьи я поделюсь опытом использования Elastic Search во внутренних продуктах 2ГИС, в частности, в собственной системе для организации Call-центра. А также расскажу, какие проблемы мы смогли решить, используя этот поисковый движок.


Читать дальше →
Всего голосов 51: ↑50 и ↓1 +49
Просмотры 54K
Комментарии 23

Высоконагруженные сайты и приложения на Python / Django (29 проектов)

Блог компании SECL Group Разработка веб-сайтов *Python *
Наша компания довольно давно занимается разработкой больших веб-приложений на Python / Django. В рунете крайне мало информации об этом замечательном языке программирования и фремворке на его основе. Мы решили исправить эту ошибку и рассказать о популярных высоконагруженных сайтах на этой технологии, а также дать много интересных технических подробностей. Для удобства сравнения сайтов между собой мы приводим еще и немного статистики к каждому из проектов. В целом сайтов на Python / Django, конечно, очень много в мире, мы охватим только наиболее интересные по нашему мнению.

Небольшая таблица известных проектов (на основе данных http://builtwith.com/), кликабельно:
Читать дальше →
Всего голосов 51: ↑43 и ↓8 +35
Просмотры 121K
Комментарии 56

Установка и интеграция solr с django под Ubuntu 12.04

Django *
Tutorial
image image

Введение


Как известно, на многих сайтах/веб-приложениях необходимо тем или иным образом реализовать поиск. Все хотят быстрый и качественный поиск. Разработчики помимо всего прочего хотят, чтобы поисковик был прост в установке и использовании. Так как речь идет о django, то перед нами встает ряд ограничений в реализации поиска (при условии, что в сутках 24 часа и дедлайны никто не отменял). Предлагаю вашему вниманию небольшой туториал о том, как поставить и максимально безболезненно интегрировать в django проект такой мощный поисковик, как apache solr. Всех заинтересованных прошу под кат.

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

Как проиндексировать логи бизнес-приложений в Hadoop (SolrCloud)

Блог компании CUSTIS Open source *Big Data *Hadoop *
Recovery mode

Введение


У одного из наших клиентов возникла задача вынести логи из большинства корпоративных приложений и их баз данных «куда-нибудь» — уж больно с ними много возни: растут как на дрожжах, чисти их периодически, а к некоторым еще и доступ должен быть обеспечен в течение многих лет, да еще и анализ хочется проводить системным образом. Конечно же, вынести логи – это не первичная цель, и по совокупности требований мы выбрали Hadoop, версию от Cloudera (CDH 5).

Требования указывали, что решение, помимо прочего, должно предоставлять возможность поиска и просмотра списка событий (из логов) по заданным критериям, причем желательно быстрого. Причем некоторые приложения также должны быть переделаны, чтобы формы просмотра логов стали использовать Hadoop вместо своих баз данных.

Как одно из решений — использовать поисковый модуль SolrCloud, который входит в комплект Hadoop от Cloudera. В Cloudera «из коробки» входят тулзы для выгрузки данных из баз данных приложений и их индексации пачкой (не построчно). Однако такой способ оказался хоть и рабочим, но более трудоемким и непредсказуемым в настройке, чем, скажем, если бы мы использовали Impala для выборки данных. Поэтому я решил поделиться как мы это делали, в надежде сэкономить время тем, кто столкнется с похожей задачей.

Эта статья описывает детали настройки, а также встреченные в процессе работы особенности.
Читать дальше →
Всего голосов 9: ↑6 и ↓3 +3
Просмотры 6.3K
Комментарии 20

DMP часть 1. Микросегментирование аудитории с помощью ключевых слов

Блог компании Targetix Высокая производительность *Разработка веб-сайтов *Big Data *
Авторы статьи: Данила Перепечин DanilaPerepechin, Дмитрий Чеклов dcheklov.

Здравствуйте.
Data management platform (DMP) — это наша любимая тема во всей истории про онлайн рекламу. RTB is all about the data.
В продолжение цикла рассказов о технологическом стеке Targetix (SSP, DSP), сегодня я опишу один из инструментов, входящих
в DMP — Keyword Builder.


Читать дальше →
Всего голосов 12: ↑10 и ↓2 +8
Просмотры 15K
Комментарии 20

Как Discord индексирует миллиарды сообщений

Высокая производительность *Мессенджеры *Open source *Анализ и проектирование систем *Google Cloud Platform *
Перевод


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

Требования


  • Экономически эффективный: Основное взаимодействие пользователя с Discord — это наш текстовый и голосовой чат. Поиск — вспомогательная функция, и стоимость инфраструктуры должна отражать это. В идеале это значит, что поиск не должен стоить дороже, чем фактическое хранение сообщений.
  • Быстрый и интуитивно понятный: Все создаваемые нами функции должны быть быстрыми и интуитивными, в том числе поиск. Он должен выглядеть и ощущаться по высшему стандарту.
  • Самовосстановление: У нас нет отдела DevOps (пока), так что поиск должен выдерживать сбои с минимальным человеческим вмешательством или вообще без него.
  • Линейно масштабируемый: Как и с хранением сообщений, увеличение ёмкости поисковой инфраструктуры должно предусматривать добавление нодов.
  • Ленивая индексация: Не все пользуются поиском — мы не должны индексировать сообщения, пока кто-то не попытается хотя бы раз их найти. Вдобавок, после сбоя индекса должна быть возможность переиндексации серверов на лету.
Читать дальше →
Всего голосов 25: ↑25 и ↓0 +25
Просмотры 10K
Комментарии 2

LinqToSolr — используем LINQ для получения данных из Solr

Программирование *.NET *API *C# *Разработка под Windows *
Tutorial
image
В силу того, что в нашей компании в качестве платформы полнотекстового поиска выбор пал на Solr, возникло сильное желание упростить работу с запросами к Solr через использование LINQ выражений.

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

Результатом стала маленькая библиотека LinqToSolr (GitHub проект), которая содержит в себе реализацию интерфейса IQueriable<> с возможностью конвертации запросов в понятный Solr API и обратно.
Читать дальше →
Всего голосов 13: ↑13 и ↓0 +13
Просмотры 3.6K
Комментарии 4

Спецпроекты в Сбербанк-Технологиях: как в банках готовят Hadoop, Spark, Kafka и прочую Big Data

Блог компании JUG Ru Group Java *Big Data *Машинное обучение *Hadoop *
Все мы любим посмеяться над дремучим legacy на Java, которое якобы живёт в банках. После прочтения этой статьи у вас появится понимание другой грани этой истории. Оказывается, конкретно в Сбербанк-Технологиях есть целые большие отделы, занимающиеся прорывными технологиями и направлениями, включая Big Data и Machine Learning. Более того, скоро мы можем оказаться в мире, где Machine Learning встроен чуть ли не в каждую кофеварку. К добру или к худу, но Internet of Things, следящий за нами тысячью глаз из каждого банкомата, — куда более актуальное прочтение этой старой шутки.

Как вы, наверное, заметили, я пишу на Хабре про виртуальные машины, внутренности OpenJDK, JVM и другую системную разработку. Почему эта статья — о банковском софте? Потому что это актуально как никогда. Вот представьте, вы такой весь в белом, дважды Data Scientist и четырежды важный гуру JIT-компиляции. Что дальше? Кому всё это может быть нужно прямо здесь и сейчас? Часто слышу рассуждения на тему: «Вот сейчас ты ковыряешься в своей любимой Java, а завтра никто тебя на работу не возьмёт». Это очень забавное и опасное заблуждение. Благодаря таким товарищам, о которых пойдёт речь в этой статье, работа у нас будет всегда.

Конечно, на слово мне никто верить не должен, поэтому специально для Хабра я сорвался на самолёт в Москву, чтобы пообщаться с начальником отдела разработки спецпроектов в Сбербанк-Технологиях. Вадим Сурпин потратил на меня чуть больше часа, а в этом интервью будут только самые важные мысли из нашего разговора. Кроме того, удалось уговорить Вадима подать заявку на участие в нашей конференции JBreak. Более того, Вадим — первый человек, который показался мне достойным инвайта на Хабр: vadsu (инвайт был честно заработан статьей про хакинг ChromeDriver).

Читать дальше →
Всего голосов 46: ↑40 и ↓6 +34
Просмотры 29K
Комментарии 24

DoctrineSolrBundle — поиск по Doctrine entity на базе Solr в Symfony2/3

PHP *Symfony *

DoctrineSolrBundle


Добрый день, хочу представить свой symfony 2 бандл для автоматической синхронизации Doctrine entity в Solr и последующим поиском. Бандл предназначен для работы с Solr на уровне Doctrine entity и позволяет избежать написания низкоуровневых запросов в solr. Процесс установки и подробную документацию можно посмотреть на github.


Возможности


Реализованы основные (не все) возможности поиска стандартного парсера запросов Solr :



Также реализована поддержка SuggestComponent

Читать дальше →
Всего голосов 10: ↑10 и ↓0 +10
Просмотры 2.7K
Комментарии 25

Интеграция dovecot и Apache Solr

Системное администрирование **nix *
Tutorial
Добрый день.

Сегодня, почта до сих пор остаётся одним из ключевых средств обмена сообщениями в корпоративном сегменте. Объём хранимой почты только растёт и со временем занимает сотни гигабайт, а то и вовсе несколько терабайт. В такой момент пользователи в большинстве случаев начинают испытывать проблемы в процессе эксплуатации почты, например с поиском. Если использовать Web клиент, например тот же RoundCube, то при поиске по всем сообщениям во всех папках да и ещё по содержимому самого письма, очень часто результат приходилось ждать десятки секунд, что не очень приятно. Поэтому я и подумал, что пора бы в dovecot настроить FTS плагин.
Читать дальше →
Всего голосов 13: ↑13 и ↓0 +13
Просмотры 5.4K
Комментарии 36

Речевая аналитика для колл-центров на основе SOLR

Блог компании Центр речевых технологий (ЦРТ) Поисковые технологии *
Из песочницы
Хочу рассказать о нашем опыте разработки приложений на основе платформы полнотекстового поиска Apache Solr.

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

Почему именно Solr? Собственных сравнительных исследований движков индексированного поиска мы не проводили, но внимательно ознакомились с мнением коллег. Конечно, выбор мог состояться и в пользу Elasticsearch или Sphinx, но, видимо, звезды в нашем проекте сложились в пользу Solr, его мы и “пилили”. Уже по ходу проекта мы определили, что имеющихся в Solr настроек достаточно для конфигурирования под наши задачи.
Читать дальше →
Всего голосов 9: ↑8 и ↓1 +7
Просмотры 2.3K
Комментарии 3

Насколько легко доставить заказ, зная адрес клиента (не очень)

Блог компании Lamoda PostgreSQL *Геоинформационные сервисы *IT-компании

Всем привет! Меня зовут Денис Гирько, я системный архитектор e-commerce платформы в Lamoda. В прошлом году я выступал на конференции DevConf с докладом, которым хочу поделиться с вами.


Это обзорный доклад о том, с какими сложностями в процессе доставки заказа встречается крупный интернет-магазин и какие технические решения могут помочь их преодолеть (на примере решений, которые мы опробовали в Lamoda).


image


О чем пойдет речь? Расскажу:


  • о процессе доставки и обозначу проблемы;
  • как эффективно хранить территории доставки в базе;
  • как повысить качество тех данных, которые мы получаем от клиента;
  • как в адресной базе искать адресата, чтобы найти больше точных результатов.
Читать дальше →
Всего голосов 33: ↑32 и ↓1 +31
Просмотры 8.9K
Комментарии 17

Кому рецепты для электронной коммерции? Для SAP Commerce и не только

Блог компании EPAM Поисковые технологии *Программирование *Java *Разработка под e-commerce *
Моё хобби ― автоматизация онлайн-ритейла. Уже много лет даже в свои выходные я не вылезаю из этого «болота». Да, наверное, это звучит дико и даже смешно. Как можно увлекаться таким скучным делом? — скажут одни. Что там увлекаться, это просто какая-то частная тема для уважающего себя архитектора ПО! — скажут другие.

Действительно, на первый взгляд, это, как говорится, недиссертабельная тема. Фактически, это сборная солянка из разных тем, тем или иным образом притащенных в e-commerce. И в итоге оказалась ровно тем, что я люблю: интеграция технологий.

И вот с 2016 я веду техноблог, hybrismart.com. Такая «хабра» в миниатюре, только на английском и с фокусом на близкую мне тему — разработку на SAP Commerce. У нас тут сформировалась небольшая компания из нескольких десятков тысяч авторов, но в блог пока что пишет только часть из них. Ну, хорошо, пишут пока немногие. Десяток. Но мы стараемся. В блоге уже накопилось под две сотни статей, преимущественно больших и очень больших на самые разные темы, тем или иным боком относящиеся к ecom. В существенной части это всё-таки персональный блог, поэтому отдуваюсь тут я, а не наша пиар-служба. Но это от души, правда.

Как легко догадаться из названия, hybrismart — про хайбрис (что это такое?). И почти все, кто его находит, знают о хайбрисе не понаслышке. Ну и наоборот: наверное, каждый разработчик на hybris хотя бы раз в блог заходил (конечно, не по доброй воли, нам гугл помогает!). Теперь вот и вы зашли. И чтобы вы там не потерялись, хочу провести небольшую экскурсию. Задавайте, пожалуйста, вопросы в самом конце.

Читать дальше →
Всего голосов 3: ↑2 и ↓1 +1
Просмотры 3.8K
Комментарии 1