Комментарии 32
Очень интересно, но для отличного програмиста все это напсать не проблема, а вот для новичка это утопия, из которой он поймет какой он недоучка. имхо, конечно
О_о все елементарно
Спасибо!
Вопрос: а где тут реализуются синонимы и деревья?
Вопрос: а где тут реализуются синонимы и деревья?
реализация в коде осталась за рамками данной статьи. что же касается хранения данных, то посмотрите таблицу tags — по структуре там видно как хранятся деревья, хранение синонимов в таблице tags_names.
Наверно стоило оговориться, что под синонимом в нашей системе подразумевается синоним на естественном языке, то есть одна сущность тэга может содержать несколько синонимов, а не так что несколько разных сущностей тэгов объявляются синонимами и для них назначается главный. сущность одна, значений много.
надеюсь я правильно понял ваш вопрос.
Наверно стоило оговориться, что под синонимом в нашей системе подразумевается синоним на естественном языке, то есть одна сущность тэга может содержать несколько синонимов, а не так что несколько разных сущностей тэгов объявляются синонимами и для них назначается главный. сущность одна, значений много.
надеюсь я правильно понял ваш вопрос.
Очень грамотная статья. Даже не знал о таких багатых возможностях Sphinx.
сори, смутила фраза «… богатых возможностях...»
Это всего лишь базовый функционал. А как его грамотно использовать — тут уж от мастера зависит.
Это всего лишь базовый функционал. А как его грамотно использовать — тут уж от мастера зависит.
Ну, я думал что сфинкс годится только для поиска — простого (по постам, к примеру) или сложного — какой-нибудь расширенный поиск со множеством параметров. А о таких вещах не знал
Видимо вы смотрите на эту статью под каким-то неправильным углом…
Потому, что все что в статье описывается — это и есть поиск! Причем еще и полнотекстовый местами.
Просто благодаря сфинксу некоторые вещи эффективнее сделать через него нежели хитрыми запросами к БД!
Вот например market.liveinternet.ru — вообще полностью сделан на сфинксе — контент для каждой страницы этого сайта «генирируется» именно сфинксом.
Потому, что все что в статье описывается — это и есть поиск! Причем еще и полнотекстовый местами.
Просто благодаря сфинксу некоторые вещи эффективнее сделать через него нежели хитрыми запросами к БД!
Вот например market.liveinternet.ru — вообще полностью сделан на сфинксе — контент для каждой страницы этого сайта «генирируется» именно сфинксом.
Вопрос к знатокам: можно ли сделать не *дерево* тегов, а *граф*? Т.е. чтобы у каждого тега было несколько детей и несколько родителей?
И, если можно, приведите пример SQL-запроса, который бы доставал пост по тегу с учетом графа зависимости и синонимов.
Просто сам сейчас пишу умную теговую систему для своего проекта, и на этом месте у меня «затык».
И, если можно, приведите пример SQL-запроса, который бы доставал пост по тегу с учетом графа зависимости и синонимов.
Просто сам сейчас пишу умную теговую систему для своего проекта, и на этом месте у меня «затык».
Мне тоже интересно, погуглю на досуге.
Таг может являться «контейнером» для других тагов, каждый из которых, так же может быть контейнером. Один таг может быть включен в несколько контейнеров. Таким образом, у тага может быть несколько родителей. Главное реализовать проверку, чтобы избежать рекурсии. Связи между двумя тагами хранятся в отдельной таблице. У каждой связи есть «позиция в контейнере», по номеру позиции собираем дерево, если надо.
Сумбурно, но как-то, если в двух словах. :)
Сумбурно, но как-то, если в двух словах. :)
В этой статье я не буду останавливаться на моментах связанных с установкой Sphinx и не буду рассказывать про sphinx-api — будем считать что всё это читателю уже знакомо.
Буквально на днях задумался над установкой Сфинкса себе, но вот проблема: как это все поставить и настроить? Хотелось бы услышать ответ на цитату в виде ссылки, если кому-нибудь не сложно… Буду премного благодарен (за русский язык, ибо искал — не получилось найти ничего, кроме обзоров и тестов)…
1) На офф. сайте в документации есть пункт: www.sphinxsearch.com/doc.html#installation
2) Даже не читая его скачал сырцы ./configure, make, все дела — получили: 1. демона(searchd) 2. индексатор(indexer) 3. возможность работать из командной строки(search) 4. пример файла с настройками сфинкса(sphinx.conf) Для не превередливых пользователей установка на этом заканчивается.
А вот про винду ничего немогу сказать.
2) Даже не читая его скачал сырцы ./configure, make, все дела — получили: 1. демона(searchd) 2. индексатор(indexer) 3. возможность работать из командной строки(search) 4. пример файла с настройками сфинкса(sphinx.conf) Для не превередливых пользователей установка на этом заканчивается.
А вот про винду ничего немогу сказать.
мне винду не надо, у меня mac, думаю встанет. Ну или под линуксом перегружусь, потестировать ) Спасибо вам большое, я не специалист в компиляции просто, но попробую обязательно =)
хнык, интересно!
Спасибо за статью автор, благодарю.
Спасибо за статью автор, благодарю.
Спасибо за идею с delta-индексом. Как раз внедряем sphinx. :)
Не за что.
Ещё один совет: если у вас полная индексация занимает ощутимое время (например более 3 минут), то пожалуй, уже стоит задуматься над merge'ем индексов вместо полной переиндексации.
Ещё один совет: если у вас полная индексация занимает ощутимое время (например более 3 минут), то пожалуй, уже стоит задуматься над merge'ем индексов вместо полной переиндексации.
Что-ж такое то..!
Почему никто не хочет читать мануал?
Идея за которую вы благодарите описывается в пункте «3.10. Live index updates» (http://www.sphinxsearch.com/doc.html#live-updates).
Как же вы без RTFM внедрять будете?
Почему никто не хочет читать мануал?
Идея за которую вы благодарите описывается в пункте «3.10. Live index updates» (http://www.sphinxsearch.com/doc.html#live-updates).
Как же вы без RTFM внедрять будете?
Подскажите, как вы запускаете индексер на создание delta_index при изменении информации?
пытаюсь из PHP exec() — пишет, что нет доступа к PID-файлу
пытаюсь из PHP exec() — пишет, что нет доступа к PID-файлу
Привет из прошлого.
Ну нада же блин. Всю голову сломал как сделать поиск по тегам по полю MVA, чтобы все переданные теги искались по «условию И».
Оказца все очень просто — надо вызвать setFilter() несколько раз.
Спасибо огромное. Вам +1!
Ну нада же блин. Всю голову сломал как сделать поиск по тегам по полю MVA, чтобы все переданные теги искались по «условию И».
Оказца все очень просто — надо вызвать setFilter() несколько раз.
Спасибо огромное. Вам +1!
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
AdMe.ru: Тэги, полнотекстовый поиск и всё такое…