Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: нужна идея

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
FrozenRain
Отправлено: 30 Сентября, 2014 - 05:58:53
Post Id


Гость


Покинул форум
Сообщений всего: 69
Дата рег-ции: Окт. 2012  


Помог: 0 раз(а)

[+]


У кого есть идея может кто то сталкивался. Есть базы нужно сделать аякс поиск то есть как в гугле вводишь а запросы летят и, летят и, выводит то что нужно уже на этапе ввода. Проблема в следуйщем поиск будет по фамилии имени отчеству но запросы на поиск не полной фамилии и, фамиилии и, части имени дескать разные. Как организовать выбор нужного запроса
 
 Top
tato
Отправлено: 30 Сентября, 2014 - 08:44:46
Post Id



Посетитель


Покинул форум
Сообщений всего: 468
Дата рег-ции: Сент. 2011  
Откуда: Владивосток


Помог: 8 раз(а)




FrozenRain, вам нужен автокомплит(например jquery.ui autocomplete) и sphinx
Sphinx - это полнотекстовый поиск, проиндексируете нужное и будете искать как хотите.


-----
просто ?: сложно
 
 Top
FrozenRain
Отправлено: 30 Сентября, 2014 - 10:12:35
Post Id


Гость


Покинул форум
Сообщений всего: 69
Дата рег-ции: Окт. 2012  


Помог: 0 раз(а)

[+]


не совсем понял как мне поможет полнотекстовый поиск вот есть колонки фамилия имя отчество а причем тут полнотекстовый ??
 
 Top
RickMan
Отправлено: 30 Сентября, 2014 - 10:27:18
Post Id


Участник


Покинул форум
Сообщений всего: 1033
Дата рег-ции: Май 2012  


Помог: 30 раз(а)




https://twitter[dot]github[dot]io/typeahead[dot]js/examples/ - используйте это для поля ввода.
 
 Top
esterio
Отправлено: 30 Сентября, 2014 - 13:13:27
Post Id



Активный участник


Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012  
Откуда: Украина, Львов


Помог: 127 раз(а)




FrozenRain
википедию смотрели хотя бы
Sphinx
Цитата:
Поддержка нескольких полей полнотекстового поиска в документе (до 32 по умолчанию);
 
 Top
FrozenRain
Отправлено: 30 Сентября, 2014 - 18:44:45
Post Id


Гость


Покинул форум
Сообщений всего: 69
Дата рег-ции: Окт. 2012  


Помог: 0 раз(а)

[+]


оу всех благодарю а я уже думал фабрики писать и через них выберать нужный запрос )
(Добавление)
esterio пишет:
FrozenRain
википедию смотрели хотя бы
Sphinx
Цитата:
Поддержка нескольких полей полнотекстового поиска в документе (до 32 по умолчанию);

подумал сначала что такая возможность все таки есть к сожалению не нашел не какой инфы по этому поводу. Мне не нужен сам процесс ранжирования мне нужен способ каторый определит чем мне искать
 
 Top
tato
Отправлено: 01 Октября, 2014 - 01:12:00
Post Id



Посетитель


Покинул форум
Сообщений всего: 468
Дата рег-ции: Сент. 2011  
Откуда: Владивосток


Помог: 8 раз(а)




FrozenRain, мы используем сфинкс на сайте, он ишет по многим полям, например если человек введет 42, это будет размер, если введет "штаны" - это будут штаны, а
если штаны 42, то "вапще атлична", будут искатся штаны 42 размера.

Sphinx - это быстро(в плане поиска), это быстро(в плане новых индексов), это быстро(в плане новых фильтров), это... ну вы поняли.

Не ну канечно можно и лайками базу долбить (=, только потом не приходите с ворпосом "Что ж так все лагает у меня на сайте", Я Вам могу прям сейчас ответить "Потому, что автокомплит с лайком"


-----
просто ?: сложно
 
 Top
FrozenRain
Отправлено: 01 Октября, 2014 - 02:28:16
Post Id


Гость


Покинул форум
Сообщений всего: 69
Дата рег-ции: Окт. 2012  


Помог: 0 раз(а)

[+]


tato пишет:
FrozenRain, мы используем сфинкс на сайте, он ишет по многим полям, например если человек введет 42, это будет размер, если введет "штаны" - это будут штаны, а
если штаны 42, то "вапще атлична", будут искатся штаны 42 размера.

Sphinx - это быстро(в плане поиска), это быстро(в плане новых индексов), это быстро(в плане новых фильтров), это... ну вы поняли.

Не ну канечно можно и лайками базу долбить (=, только потом не приходите с ворпосом "Что ж так все лагает у меня на сайте", Я Вам могу прям сейчас ответить "Потому, что автокомплит с лайком"

не обижайтесь но вы видимо не читаете что мне нужно я отлично понемаю механизмы индексирования, и настройки оптимизации базы данных я могу применить порывающие индексы или вообще вести синхронизацию с редисом. мне не трудно написать три быстро работающих запроса... Вопрос как мне выбрать какой из запросов юзать.
(Добавление)
я инкапсулирую механизм выбора нужного метода для поиска по базе. потому что у меня5 таблиц которые пересоздаются раз в месяц и мне бы не хотелось создавать 5 фабрик...а если в дальнейшем их станет 10 то 10 фабрик ?
(Добавление)
опа ответ найден я выделю 1 класс под фабричные методы думаю это решит мои проблемы. Всем спасибо.

(Отредактировано автором: 01 Октября, 2014 - 02:31:30)

 
 Top
tato
Отправлено: 01 Октября, 2014 - 06:49:42
Post Id



Посетитель


Покинул форум
Сообщений всего: 468
Дата рег-ции: Сент. 2011  
Откуда: Владивосток


Помог: 8 раз(а)




FrozenRain, не на то упор сделал в последнем сообщении.
По теме, Вы можете сделать индексы по любому количеству таблиц, комбинировать их для выборки или искать по конкретному, например
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. index bulletins_main
  3. {
  4.     docinfo      = extern
  5.     charset_type = utf-8
  6.     morphology   = stem_ru
  7.     min_word_len = 2
  8.     source       = bulletins_main
  9.     path         = /var/lib/sphinx/bulletins_main
  10. }
  11.  
  12. index bulletins_delta
  13. {
  14.     docinfo      = extern
  15.     charset_type = utf-8
  16.     morphology   = stem_ru
  17.     min_word_len = 2
  18.     source       = bulletins_delta
  19.     path         = /var/lib/sphinx/bulletins_delta
  20. }
  21.  
  22. index bulletins
  23. {
  24.         type = distributed
  25.         local = bulletins_main
  26.         local = bulletins_delta
  27. }
  28.  


Тут 3 индекса, основной, дельта и комбинированый. В основном все, в дельте только свежее, комби ищет в обоих.
Применительно к Вашей ситуации:
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. index user_name
  3. {
  4.     docinfo      = extern
  5.     charset_type = utf-8
  6.     morphology   = stem_ru
  7.     min_word_len = 2
  8.     source       = bulletins_main
  9.     path         = /var/lib/sphinx/user_name
  10. }
  11.  
  12. index user_sname
  13. {
  14.         docinfo  = extern
  15.     charset_type = utf-8
  16.     morphology   = stem_ru
  17.     min_word_len = 2
  18.     source       = bulletins_delta
  19.     path         = /var/lib/sphinx/user_sname
  20. }
  21.  
  22. index user_info
  23. {
  24.         type = distributed
  25.         local = user_name
  26.         local = user_sname
  27. }
  28.  


В приложении
PHP:
скопировать код в буфер обмена
  1.  
  2. $result = $search->query( $someString, 'user_info' );
  3.  

т.е. будет искать по всем таблицам

PHP:
скопировать код в буфер обмена
  1.  
  2. $result = $search->query( $someString, 'user_name' );
  3.  

будет искать только в именах

В чем соль
Соль в сорцах индекса, вам не нужно париться о структуре таблиц и тому как они называются. Вам не нужно даже знать какие они там есть сфинкс вернет все подходящие строки. Вы спросите как ужнать из какой таблицы результат запроса? sql_query_info вам в помощь.

Хотя, что Я Вам тут рассказываю...


-----
просто ?: сложно
 
 Top
esterio
Отправлено: 01 Октября, 2014 - 12:32:52
Post Id



Активный участник


Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012  
Откуда: Украина, Львов


Помог: 127 раз(а)




FrozenRain
что вы вцепились в фабрику, это ООП, а вам тут говорят о базе и поиск в ней
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Объектно-ориентированное программирование »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB