Поиск предприятия: кто-нибудь разрабатывал на FAST ESP? Что вы думаете об этом? - PullRequest
5 голосов
/ 22 января 2009

Я работаю на скандинавских желтых страницах. Компания планирует перенести свою поисковую технологию на FAST ESP.

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

Есть ли какие-нибудь стекаповеры, которые имеют опыт FAST ESP и хотят поделиться?

Ответы [ 14 ]

15 голосов
/ 10 февраля 2009

:) Я - поисковый архитектор, который с 1997 года занимается разработкой и внедрением технологий поисковых систем, работая инженером-программистом Lycos.

Мы используем FAST ESP в качестве поисковой системы, которая поддерживает http://thomasnet.com. Я работаю с ESP с 2003 года (тогда он назывался FDS 3.2).

FAST ESP чрезвычайно гибок и может индексировать многие типы документов (html, pdf, word и т. Д.). Он имеет очень надежный сканер для веб-документов, и вы можете использовать их промежуточный формат FastXML для загрузки пользовательских форматов документов в систему или использовать их Content API.

Одна из моих любимых частей движка - это конвейер обработки документов, который позволяет вам использовать десятки готовых плагинов для обработки, а также использовать Python API для написания собственных этапов обработки документов. Примером пользовательского этапа, который мы написали, был тот, который просматривает URL веб-сайта и пытается определить, к какой компании он принадлежит, поэтому дополнительные метаданные могут быть присоединены к веб-документу.

Он имеет очень надежный SDK для программирования / интеграции на нескольких популярных языках (C ++ / C # / Java) для добавления контента и выполнения запросов, а также для получения состояния системы и управления службами кластера.

ESP имеет язык запросов, называемый FAST Query Language (FQL), который является очень надежным и позволяет выполнять базовые булевы поиски (AND, OR, NOT), а также поиск по фразе и термину близости. В дополнение к этому в нем есть что-то под названием «поиск по области», который можно использовать для поиска метаданных документа (XML), формат которых может варьироваться от документа к документу.

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

Итак, это очень мощно. Документация в настоящее время довольно хорошая. Итак, вы спросите, каковы недостатки?

Что ж, если данные, которые нужно сделать доступными для поиска, имеют часто меняющийся формат, это может быть проблемой. ESP имеет нечто, называемое «Профиль индекса», который в основном является файлом конфигурации, который он использует для определения того, какие поля документа важны и должны использоваться для индексации. Все, что подается в ESP, является «документом», даже если в него загружаются строки таблицы базы данных. Каждый документ имеет несколько полей, типичные поля: заголовок, тело, ключевые слова, заголовки, векторы документов, время обработки и т. Д. Вы можете указать столько собственных полей, сколько пожелаете.

Если ваш контент поддерживает в основном один и тот же формат (например, веб-документы), это не большая проблема. Но если вам нужно внести большие изменения в то, какие поля должны быть проиндексированы и как они должны обрабатываться, вам, вероятно, нужно отредактировать профиль индексации. Некоторые изменения в профиле индекса - «Горячие обновления», то есть вы можете вносить изменения, а не прерывать службу. Но некоторые из самых больших изменений - это «холодные обновления», которые требуют полной ссылки и индексации данных, прежде чем изменения вступят в силу. В зависимости от размера набора данных и количества компьютеров в кластере эта операция может занять несколько часов или дней. Холодные обновления сложно планировать, если у вас нет достаточно денег на дополнительное оборудование, которое вы можете подключить к сети, пока производственные системы выполняют холодное обновление и перезагружают данные. Необходимость делать это в производственных кластерах чаще, чем один или два раза в год, требует значительного объема планирования для правильного решения с минимальным временем простоя или 0%.

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

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

Надеюсь, вы найдете эту оценку полезной. :)

С уважением, Майкл Макинтош Старший поисковый архитектор @ TnR Global

4 голосов
/ 07 сентября 2010

В течение 2008-2009 гг. Я работал на желтых страницах на русском языке (yell.ru) в качестве «инженера поисковой системы». Моя основная обязанность заключалась в работе с системой FAST ESP. Я пишу и поддерживаю собственный обработчик документов (настраиваемый этап) для нашей конкретной обработки данных, некоторый «склеивающий» код для конвейера передачи данных. Что касается FAST ESP. У меня «смешанное» чувство по этому поводу. Вот некоторые недостатки.

  1. Это дорогой продукт. Помимо разового первоначального платежа, вы должны заплатить ежегодную (и заметную) плату за лицензию, иначе ваш сервер прекратит работу. Наша ошибка заключалась в том, чтобы получить (относительную) недорогую лицензию с очень ограниченной скоростью «максимальное количество запросов в секунду» (максимум 10 запросов в секунду). Хотя нам несколько раз говорили, что это просто «ограничение бизнеса», на самом деле это был жесткий технический предел максимальной производительности сервера. Наша производительность была разрушена из-за этого пикового предела, и мы вернулись к временной «оценочной» лицензии, которая (на удивление!) Не имела каких-либо ограничений производительности (только ограничение по времени).

  2. Документация хорошая, но не очень глубокая в технических деталях. Невозможно сделать что-то действительно сложное, просто читая документацию. Детали просты не здесь. Как только нам сказали, что нам нужно связаться с их «отделом решений» (и купить «решение»), потому что это не должно быть сделано клиентами.

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

  4. Здесь и там есть некоторые странные технические ограничения. Например - у нас может быть только 8 различных значений усиления, назначенных для поиска полей.

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

1 голос
/ 31 октября 2017

Я работал в проектах группы поиска GE около 4 лет, они используют FAST ESP, и я обнаружил, что это очень гибкая, мощная и многоязычная обработка документов. Это позволило мне искать в документах как минимум 20 различных языков, включая японский, китайский и корейский с латиноамериканским языком и греческим. Кроме того, я смог индексировать документы из баз данных, сканеров (на основе XML), PDF, Office и т. Д., Смешанных в одном поиске, с использованием разных наборов данных, смешанных поисковой системой. Также позволил мне создать различные конвейеры, чтобы подходить к разному содержанию контента.

1 голос
/ 21 июня 2012

Просто комментируя предыдущий ответ (у меня недостаточно репутации, чтобы отвечать непосредственно на ответы) о том, что filetraverser не получает изменения ACL:

Вы можете получить средство отслеживания файлов, чтобы получать изменения прав доступа к файлу, включив aclplugin

filetraverser -c <collection> -r <dir> -M -E -J $FASTSEARCH/etc/filetraverser/aclplugin.xml

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

1 голос
/ 01 апреля 2010

Мы внедрили большое количество приложений FAST ESP, и во всех случаях ESP оказалась очень стабильной и высокопроизводительной платформой, если вы заранее инвестируете в относительно более высокие затраты на внедрение. Что касается вопроса о желтых страницах - мы внедрили и управляем крупнейшим сайтом онлайн-каталогов в США, используя ESP, и он обрабатывает огромные QPS (количество запросов в секунду). Как уже упоминалось, ключевые альтернативные технологии - Google, Solr / Lucene, например, также очень эффективны, и ваш выбор действительно зависит от технических / пользовательских требований и бюджета.

1 голос
/ 24 августа 2009

Я поддерживаю FAST ESP уже несколько лет. Всего 4/5.

Мой опыт на сегодняшний день заключается в том, что платформа FAST ESP очень прочная, но у различных разъемов есть свои особенности.

Соединитель Lotus Notes особенно плох и периодически ломается, когда индексируется более 100 000 документов.

Другие причуды могут быть довольно серьезными, например, File Traverser не отражает обновление документа при обновлении разрешений NTFS для файлов. Это означает, что каждый может увидеть документ, который не должен иметь - плохая проблема безопасности.

Я повторяю мнение других здесь, FAST ESP очень хорош, но это, конечно, не «нестандартное» решение. Будьте готовы потратить от 3 до 12 месяцев на реализацию, но вы будете вознаграждены очень мощным двигателем.

1 голос
/ 08 июля 2009

@ Майкл Макинтош: Чтобы избежать холодного обновления, вы можете добавить в индекс общие поля. Например, вы добавляете 5 общих целых чисел, 5 строк и 5 дат. Когда вам нужно внезапно ввести новое целое число, вы можете использовать «заполнение», которое у вас уже есть, например, igeneric1.

Через некоторое время вы можете захотеть выполнить холодное обновление, а затем объединить эти поля и дать им правильные имена и т. Д.

1 голос
/ 12 февраля 2009

Технология FAST ESP является надежной, но вы должны иметь в виду, что это действительно поисковая платформа (следовательно, «ESP»), а не стандартная поисковая система. Качество ваших результатов напрямую связано с качеством вашего индекса, что означает, что вам действительно нужно настроить конвейер обработки документов и профиль индекса для вашего контента.

Нет жестких и быстрых правил для этого; вам действительно нужно понимать платформу и ваш контент. Это займет время и много проб и ошибок. Кроме того, это требует ресурсов, поэтому вы не можете экономить на оборудовании. Если у вас есть время и ресурсы, чтобы сделать это правильно, это будет работать отлично, но на полпути работа будет не лучше (и, возможно, хуже), чем что-то из коробки или даже Lucene.

0 голосов
/ 04 июня 2011

Помимо FAST ESP у вас есть только два других возможных варианта: платформа IDOL от Autonomy (AFAIK) и Apache Solr.

0 голосов
/ 21 сентября 2010

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

...