Поиск по 1-му миллиону товаров

makcumyc

Новичок
Поиск по 1-му миллиону товаров

Всем привет!
У меня такая проблема, возможно, кто-то сталкивался. Происходит поиск по товарам, которых более чем 1 миллион. Поиск производится при помощи MATCH + иногда использую LIKE, когда в запросе 2-3 символа, так как MATCH не позволяет этого сделать (точнее он позволяет, но на моём сервере, при изменении параметров поиска MATCH он вообще прекращает корректно работать). Вопрос в том, как можно увеличить скорость поиска? В большинстве случаев, поиск происходит быстро, но время от времени затягивается от 5 до 10 секунд, от чего, естественно, хотелось бы избавиться.
Ещё такой нюанс, данные в базе обновляются каждый день.
 

Santiago

Новичок
Как вариант, использовать внешний поиск. Например, Sphinx.
 

Rosco

Новичок
Поисковый индекс выносим в отдельную табличку. Варианты поиска денормализуем и пихаем также в отдельные таблицы.
У меня при 400 000 словоформ поиск занимает меньше 1с.
 

makcumyc

Новичок
Автор оригинала: Alexandre
не используй их и проблем не будет.
у меня было 2 млн товаров и поис занимал секунду.
а каким образом ты искал тогда? Если не при помощи MATCH + LIKE? Через Sphinx?
 

Santiago

Новичок
Автор оригинала: Alexandre
не используй их и проблем не будет.
у меня было 2 млн товаров и поис занимал секунду.
На мой взгляд, это очень долго. А если будет не один запрос, а несколько одновременных?
Недавно я проводил тест производительности Сфинкса - результаты очень сильно порадовали.
Время полнотекстового поиска точного совпадения фразы с морфологией и сортировкой по релевантности на 500 000 записей (текст) занимал ~0.027c. По миллиону это время будет около 0.06c.
На 500 тыс записях при 50 одновременных запросах среднее время релевантного полнотекстового поиска укладывалось в 0.3 с.
Время поиска по аттрибутам (например, timestamp) вообще смешные.
 

crocodile2u

http://vbolshov.org.ru
WP
Однако, о глюках надо писать баг-репорты. Ну или хотя бы описывать их более подробно, чтобы идругие о них знали.
 

makcumyc

Новичок
Может кто-то работал с Sphinx и может на каком-то рабочем примере показать как его использовать и настраивать?
 

Активист

Активист
Команда форума
Подскажите, реально ли сделать поиск по региональным сайтам на этом движке. Давно инетересовался этим вопросом :)
 

crocodile2u

http://vbolshov.org.ru
Активист
Если бы ты рассказал, что такое "поиск по региональным сайтам" - отвечать было бы проще.

Если ты имеешь в виду поиск по веб-страницам - то тебе придется писать паука самому, и скармливать сфинксу данные в виде ХМЛ.
 

Santiago

Новичок
Активист
От размера региона зависит, наверно ;) И от кол-ва сайтов в нем.
Для начала, думаю, следует оценить кол-во индексируемого материала. Не стоит, также, думать, что сфинкс все сделает за вас. По сути это всего лишь две программы - индексатор и поисковый демон. Для индексатора нужен источник данных, для поиска сам индекс. Это если упрощенно. Все остальную обвязку вы пишете сами.
 

Активист

Активист
Команда форума
Пара регионов возле Байкала :) Иркутск, может Бурятию.

Пытался давно реализовать . Пробывал через Open Source движки реализовавать (многосеч, еще что-то). То нет морфологии, то очень медленно работают, то еще какие-нибудь грабли

В итоге задумался о приобретении железяки от гугли :)

Для начала в поиске будет 500-1000 сайтов.

Как думаете, сфинкс справится?

>сфинкс все сделает за вас. По сути это всего лишь две
>программы - индексатор и поисковый демон
Не страшно. Как я понимаю нужно будет делать парсер (робота по вебу), веб морду поиска самостоятельно?

Если да, то какую СУБД лучше использовать?
 

Santiago

Новичок
Активист
При таком кол-ве сайтов - это точно не проблема.

Да, тебе придется писать паука, который будет обходить сайты, дергать контент, складывать его в БД (мускул или постресс). БД будет исчточником данных для индексатора сфинкса.
Обработку поисковых результатов тоже придется делать самому. API описан в документации и к нему есть враппер в виде php-класса от разработчиков.
 

crocodile2u

http://vbolshov.org.ru
Активист
Сфинксу по барабану, сколько там у тебя сайтов, ему до сайтов вообще никакого дела нет. До 100 млн документов на одной машине сфинкс обрабатывает нормально, это все, что тебе пока нужно знать (ну кроме чтения доки по сфинксу ;))
 

Sandr

Новичок
Вопросы по сфинксу, может кто подскажет:
-есть гделибо русская документация?
- и есть где либо русский wordforms.txt ?
 
Сверху