Статьи
Портфолио
Друзья
Контакты

Последние статьи

06.07.2010 Memcache и Zend: у Вас "падает" Memcache? 4 коммент.

06.07.2010 Collabtive - web-based project management software 2 коммент.

03.06.2010 Ускоряем ZF-проекты: автолоад и сборка в один файл 2 коммент.

Все

Категории

PHP 2 стат.

Zend Framework 25 стат.

Javascript 3 стат.

Другое 12 стат.

Книги 1 стат.

Украина 1 стат.

Все

RSS

Статьи

Комментарии

Портфолио

Облако тегов

программирование  Программы  портфолио  php  zend framework  Zend_Db  Smarty  Zend_Form  паттерны  javascript  niceforms  jQuery  Zend_Mail  веб  Google  Zend_Rest  Zend_View_Helper  zend casts  Zend_View  Zend_Layout  speedUp  интернет  Загрузчик фотографий  Flash  ВКонтакте  zend  localization  zend_translate  gettext  антон шевчук  подарки  Я читаю  Книги  sphinx  релизы 

Все

Реклама



Статистика



Rambler's Top100

Главная > Статьи > PHP > Быстро ищем - Sphinx Search Engine
20.09.09 Быстро ищем - Sphinx Search Engine

Логотип SphinxПривет всем. Вот вырвал кусок времени из своего нынешнего плотного графика работы, чтобы поделиться с Вами довольно интересным материалом об очень быстром и эффективном автономном поисковом движке - Sphinx.

 

 

Что такое Sphinx?


 

Бесплатный поисковый движек, созданный для индексации содержимого баз данных и поиска по созданным индексам. Распространяется по лицензии GNU General Public License v.2. Поддерживает PostgreSQL и MySQL.

 

 

Основные фичи


  • Высокая скорость индексации (до 10 мб/с !)
  • Высокая скорость поиска (за 0.1 с. на 2-4 гигабайтном индексе !)
  • Высокая степень масштабируемости
  • Поддержка распределенного поиска
  • Поддерживает поиск по фразам
  • Поддерживает ранжирование фразы по близости, что обеспечивает хорошую релевантность
  • Поддерживает русский и английский стемминг
  • Неограниченное количество полей на документ, вес которых может быть изменен на лету
  • Группировка документов
  • Стоп-слова
  • Разные режимы работы
  • Общий интерфейс XML
  • Клиент на чистом PHP - нет необходимости чего-то компилировать

 

 

Установка (под Windows)



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

  1. Скачайте дистрибутив Sphinx
  2. Распакуйте архив на локальный диск
  3. Скопируйте файл libmysql.dll (найдите на сервере в файлах установки MySQL) в папку bin
  4. Создайте в папке bin конфигурационный файл sphinx.conf
  5. Настройте Sphinx с помощью конфиг-файла, как описано в мануале
  6. Запустите файл /path/to/sphinx/bin/indexer.exe с параметрами: --config /path/to/sphinx/sphinx.conf --all
  7. Если все хорошо, то должен создаться индекс (не забудьте про абсолютные пути в конфиге + должны быть созданы папки для логов и файлов индекса)
  8. Далее запустите файл /path/to/sphinx/bin/searchd.exe с параметрами: --install --config /path/to/sphinx.conf. Эта операция должна создать новую службу под названием "searchd"
  9. Запустите службу searchd

Установка Sphinx как службы Windows

Вот пример реального конфигурационного файла:

Все, установка Sphinx завершена. Рекомендую написать .bat файл для удобства переиндексирования БД. Если возникают проблемы — запустите searchd.exe из командной строки с параметром --config /path/to/sphinx.conf. Все ошибки должны появится тут. Вообще с установкой я очень долго просидел, потому, что таких нюансов, как Вам показываю, не знал, поэтому у Вас должно быть намного меньше трудностей Подмигивает

 

 

Работа с Sphinx


 

Sphinx имеет свой API. В папке с распакованным дистрибутивом есть папка api. В этой папке Вы можете найти файл sphinxapi.php. Скопируйте данный файл в Ваш проект и подключите его.

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

Этот код Вы можете немного поправить под свои нужды и сбросить на сервер, чтобы протестировать работоспособность Вашего автономного веб-поиска.

 

 

Итог


 

Сфинкс — очень шустрый автономный поисковый движек. Он очень прост в использовании - это только на первый взгляд он довольно сложный в установке и использовании. Все вопросы жду в каментах. Удачи.

Теги:  php, sphinx

Другие категории:

■ PHP ■ Zend Framework ■ Javascript ■ Другое ■ Книги ■ Украина
Комментарии к статье
  Snowcore

05.10.09 12:42:34

Да, Sphinx намного шустрее PHP реализации Lucene (ZF)...

  illusive

05.10.09 15:28:07

В разы шустрее!

  Deloff

10.12.09 00:13:28

Сфинкс очень мощная штука. Шутя работает с 7 гигосами данных (темы на форуме)

  kosta

29.01.10 18:44:29

А его можно настроить на индексацию не базы, а xml файлов?

  Дмитрий

30.05.10 17:03:02

Ребят, а вот такой вопрос. 
Нужно разработать бота, собирающего данные с указанных источников с пост-очисткой от рудиментов 
Данные: источник сбора, товар, цена 

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

Задача бота – собирать информацию с 100-500 ресурсов в день и обновлять данные в БД. Предположительно, сохранять данные можно в SQL   

Вариант написания 100 шаблонов – не подходит, нужно более технологичное решение. Шаблоны постоянно могут меняться и решение становится неустойчиво. Речь идет о прототипе мини-поисковой системы с настраиваемыми параметрами поиска и сохранения результатов.  

Может ли этот движок помочь в решении подобной задачи?

  illusive

31.05.10 10:21:55

Насколько я понял задачу, то не может т.к. он индексирует только БД..

  NBST

28.06.10 09:35:16

А где учебник по сфинксу найти?

  illusive

29.06.10 10:28:22

На официальном сайте, конечно http://www.sphinxsearch.com/docs/

Оставить свой комментарий

 
Статьи | Портфолио | Друзья | Контакты
Идея и мозги: Васильев Андрей © 2008-2010 Web-Blog Кисточка и фантазия: Зелинский Богдан