<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Просто про веб технологии &#187; LinkAider</title>
	<atom:link href="http://pro100pro.com/category/projects/linkaider/feed" rel="self" type="application/rss+xml" />
	<link>http://pro100pro.com</link>
	<description>Про PHP, MySQL, Sphinx и Zend Framework, про архитектуру и производителность, про высокие нагрузки и масштабирование</description>
	<lastBuildDate>Thu, 13 Oct 2011 12:58:03 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Как вы используете Sphinx Search API?</title>
		<link>http://pro100pro.com/kak-vy-ispolzuete-sphinx-search-api</link>
		<comments>http://pro100pro.com/kak-vy-ispolzuete-sphinx-search-api#comments</comments>
		<pubDate>Mon, 21 Dec 2009 19:54:28 +0000</pubDate>
		<dc:creator>Yaroslav Vorozhko</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[LinkAider]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[Sphinx Search]]></category>
		<category><![CDATA[ZendFramework]]></category>
		<category><![CDATA[Zend Framework]]></category>

		<guid isPermaLink="false">http://pro100pro.com/?p=400</guid>
		<description><![CDATA[Sphinx Search API для PHP  пердставляет собой единый класс, который позволяет использовать все возможности Sphinx Search через его интерфейс. Но, такой класс является удобным только для небольших скриптов и задач. 
Для более сложных задач и больших веб приложений необходимо другое решение. И это решения является проектированием и реализацией собственной обертки для Sphinx Search API.]]></description>
			<content:encoded><![CDATA[<p>Sphinx Search API для PHP  пердставляет собой единый класс, который позволяет использовать все возможности Sphinx Search через его интерфейс. Но, такой класс является удобным только для небольших скриптов и задач.<br />
Для более сложных задач и больших веб приложений необходимо другое решение. И это решения является проектированием и реализацией собственной обертки для Sphinx Search API.</p>
<p>В нашем проекте LinkAider.com мы используем следующие понятия и классы при работе с Sphinx Search:</p>
<ol>
<li>Сфинкс клиент, отвечающий за подключение, выполнение запросов и обработку ошибок. Для разработчика сфинкс клиент невидим, мы только сообщаем ему параметры подключения к searchd.</li>
<li>Сфинкс индекс &#8211; это один из основных классов, с которым работает разработчик, этот класс отвечает за формирование запросов и выполнение запросов через Сфинкс клиент, а также за обработку результатов запроса.</li>
<li>Сфинкс запрос &#8211; это еще один класс к которому обращается разработчик для составления запросов. Каждый запрос отвечает за свои индекс к которому обращается, а также содержит свои фильтры, группировки, сортировки и собственно сам запрос.</li>
<li>Сфинкс результат &#8211; это класс, который разбирает ответ сфинкса и предоставляет удобный интерфейс к информации по каждому запросу, также он содержит информацию об ошибках, которую испльзуетя Сфинкс клиент для логирования. Сфинкс результат используется разработчиками для создания запросов к базе данных и получения искомых данных.</li>
</ol>
<p>Пример работы выглядит следующим образом:</p>
<ol>
<li>Мы создаем объект Сфинкс индекс, который инициализирует Сфинкс клиент, устанавливая для него параметры подключения.</li>
<li>Потом мы создаем объекты запросы для каждого указываем фильтры, группировки и т.п., и  указываем к какому индексу делать запрос. Запросов может быть один или несколько, несколько запросов обрабатываються паралельно, что улучшает общую производительность системы.</li>
<li>Каждый созданный запрос мы добавляем в Сфинкс индекс, при добавлении мы можем также указатьк какому индексу делать запрос.</li>
<li>Специальный метод Run класса Сфинкс индекс запускает все запросы и как результат возвращает нам объект Сфинкс результат.</li>
<li>Данные из Сфинкс результата мы используем чтоб создать запросы к базе данных и получить искомые данные.</li>
</ol>
<p>Преимущеста, которые мы получем от работы с такой библотекой &#8211; это простота. Разработчик используя объект Сфинкс запрос может выполнять любые запросы.<br />
Сфинкс результат предоставляет удобную обертку над массивом результата.<br />
Нет необходимости помнить множество констант SphinxClient и парсить массив результата. В общем это выглдит так, как будто вы работаете с обычной таблицой, но не до конца. :)</p>
<p>Недостатки в том, что нам все еще приходится вручную связывать результат с таблицами, что может привести к ошибкам и неэффективному коду.</p>
<p>Решение я вижу, в привязке каждого запроса к определенной таблице или группе таблиц.</p>
<p>По описнной выше логике я разрабатываю модуль Sphinx Search для Zend Framework, который я планирую выложить в откртый доступ очень скоро, возможно к новому году.</p>
<p>Поэтому хотелось бы узнать как вы используете Sphinx Search и какие преимущества и недостатки вывидите у вашего подхода.</p>
<p>Буду рад любым советам и рекомендациям.</p>
<hr />
<p><small>© Yaroslav Vorozhko  for <a href="http://pro100pro.com">Просто про веб технологии</a>, 2009. |
<a href="http://pro100pro.com/kak-vy-ispolzuete-sphinx-search-api">Permalink</a> |
<a href="http://pro100pro.com/kak-vy-ispolzuete-sphinx-search-api#comments">No comment</a> |
Add to
<a href="http://del.icio.us/post?url=http://pro100pro.com/kak-vy-ispolzuete-sphinx-search-api&title=Как вы используете Sphinx Search API?">del.icio.us</a>
<br/>
Post tags: <a href="http://pro100pro.com/tag/development" rel="tag">Development</a>, <a href="http://pro100pro.com/tag/linkaider" rel="tag">LinkAider</a>, <a href="http://pro100pro.com/tag/sphinx-search" rel="tag">Sphinx Search</a>, <a href="http://pro100pro.com/tag/zend-framework" rel="tag">Zend Framework</a><br/>
</small></p>]]></content:encoded>
			<wfw:commentRss>http://pro100pro.com/kak-vy-ispolzuete-sphinx-search-api/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

