Полнотекстовый поиск и Python - PullRequest
4 голосов
/ 07 февраля 2012

Может кто-нибудь помочь мне с предложением механизма полнотекстового поиска, поддерживающего Python?

Сейчас у нас есть база данных MySQL, и я хотел бы добавить возможность индексирования полнотекстовой поисковой системы некоторого текста в некоторых таблицах этой базы данных.Эти текстовые данные будут использоваться веб-приложением для поиска соответствующих записей в базе данных.Например, индексируйте информацию об имени клиента в нашей таблице клиентов, полнотекстовый поиск с помощью веб-приложения, чтобы получить запись MySQL для клиента.

Я (кратко) посмотрел на Lucene, Swish-E и MongoDB и несколько других, но я не уверен, что будет хорошим выбором для меня, учитывая пару вещей:

  • Я не Java-парень (хотя я давно программирую),
  • мы хотим искать только относительно небольшой набор данных,
  • мыВы хотите индексировать текст в базе данных MySQL
  • и хотели бы, чтобы этот индекс обновлялся в полуреальном времени.

Будем весьма благодарны за любые подсказки, советы или указатели!

Ответы [ 3 ]

4 голосов
/ 07 февраля 2012

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

Для масштабируемого решения рассмотрите возможность использования Lucene с PyLucene или Jython.

0 голосов
/ 07 февраля 2012

Solr - отличная оболочка для Lucene, она значительно упрощает вещи.Для большинства вещей не требуется никаких Java-манипуляций, вам просто нужно настроить некоторые XML-файлы.Он запускается как другой процесс, поэтому это может усложнить ваше развертывание.

У меня были замечательные результаты с pysolr , но на самом деле вы могли бы написать свою собственную библиотеку Python Communication, поскольку Solr использует REST,так что отправлять и извлекать данные в формате xml или json действительно просто.

0 голосов
/ 07 февраля 2012

Несколько месяцев назад создание пилицена было одним из самых болезненных событий, которые у меня были.ИМХО проект не получит никакой тяги, если его так сложно построить.

С несколькими другими людьми, имеющими тот же самый зуд, чтобы поцарапать, мы начали https://code.google.com/a/apache-extras.org/p/pylucene-extra/, чтобы собирать предварительно собранные яйца из яиц пикацена и jcc нанесколько операционных систем, версии Python и комбинации времени выполнения Java.Однако в последнее время он не очень активен.

Может быть, кто-то подойдет, или вы можете взглянуть на Sphinx , ElasticSearch или HaystackSearch (CAVEAT: я не работал ни с одним из них).

Или, возможно, попытаться получить доступ к Solr через python (есть несколько API), что может быть намного прощечем с помощью пилюцена.Конечно, учтите, что lucene по-прежнему потребуется JVM для запуска.

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

...