15 - sphinx - efektyvnyi povnotekstovyi poshuk - marian koreniuk - it event 2013 (5)

1,082 views

Published on

15 - Sphinx - ефективний повнотекстовий пошук - Мар'ян Коренюк - IT Event 2013 (5)

Останнім часом ми все більше стикаємось із необхідністю опрацювання великих об'ємів даних. Одною із найбільших проблем є повнотекстовий пошук, адже обчислювальні затрати на нього слід звести до мінімуму, а ефективність до максимуму.
У доповіді буде розглянуто Sphinx як потужний засіб із високою швидкістю індексації та пошуку, який може взаємодіяти із різними базами даних та мовами програмування. Буде розказано про його функціональні можливості та особливості налаштування.
Доповідь призначена для адміністраторів та програмістів, які працюють із великими об'ємами даних.

Мар'ян Коренюк
http://itevent.if.ua/lecture/sphinx-efektivnii-povnotekstovii-poshuk

Published in: Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,082
On SlideShare
0
From Embeds
0
Number of Embeds
975
Actions
Shares
0
Downloads
2
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

15 - sphinx - efektyvnyi povnotekstovyi poshuk - marian koreniuk - it event 2013 (5)

  1. 1. Sphinx - ефективнийповнотекстовий пошукДоповідач: Коренюк Мар’янДата-центр Першерон
  2. 2. ПошукПошук інформації у масивах данихБазові механізми пошуку
  3. 3. Архітектура SphinxБаза даних (джерело)Сервіс SphinxІндексиКлієнтський інтерфейсБаза данихMy SQLКлієнт API(PHP, Perl, …)Запит на пошукРезультат пошукуІндекси SphinxСерверSphinxIndexer(індексація даних)Запит данихдля індексуванняМасив даних Запит напошукIDдокументаЗапит документів по ID
  4. 4. Конфігурація1) Джерела отримання данихsource src_index1 {type=mysqlsql_host=localhostsql_user=sphinxsql_pass=passwordsql_db=sphinxsql_sock=/var/run/mysql/mysql.socksql_query_pre=SET NAMES utf8sql_query_pre=REPLACE INTO `sphinx_counter` SELECT 1, MAX(`id`)FROM `items` WHERE `items`.`country`=chsql_query=SELECT`items`.`id`, `items`.`item_title`, `item_descr`.`item_descr` FROM `items` WHERE`items`.`id` >= $start AND `items`.`id`<=$endsql_query_info=SELECT`items`.`id`, `items`.`item_title`, `item_descr`.`item_descr` FROM `items` LEFT JOIN`item_descr` ON `items`.`id`=`item_descr`.`item_id` WHERE `items`.`id`=$idsql_query_range=SELECT MIN(`id`),MAX(`id`) FROM `items`sql_range_step=1000sql_attr_uint=idsql_attr_uint=r_idsql_attr_uint=c_idsql_ranged_throttle=0}index index1 {source=src_index1path=/sphinx/data/index1docinfo=externmlock=0morphology=stem_enrumin_word_len = 2charset_type = utf-8charset_table = 0..9, A..Z->a..z, _, a..z, U+410..U+42F->U+430..U+44F, U+430..U+44Fmin_infix_len = 0enable_star = 1}indexer {mem_limit = 512Mmax_iops = 40write_buffer = 8M}searchd {port=9312listen=9306:mysql41log=/var/log/searchd.logquery_log=/var/log/query.logread_timeout=5max_children=30pid_file=/var/run/searchd.pidmax_matches=200000seamless_rotate=1preopen_indexes=0unlink_old= 1}2) Індекси3) Процес індексації4) Конфігурація сервера Sphinx1) Джерела отримання даних2) Індекси3) Процес індексації
  5. 5. ПрикладвикористванняMySQLPostgreSQLXMLPHPMy SQLPostgreSQLXMLPHP APISphinxЗапит напошукIDдокумента
  6. 6. ВикористанняSphinxДоцільність використанняПриклад використанняЧас впровадження
  7. 7. Запитання

×