Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум Регулярные Выражения

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Поиск на сайте

Сообщения:  [1-5] 

 
 автор: prodigy   (31.03.2011 в 22:48)   письмо автору
 
   для: cheops   (31.03.2011 в 22:26)
 

Спасибо за ответ, я немного усилил ваше решение:

$text = '{}[]\'"ёЁ`~:;|\/+=-_?7&*%()Вот, какие дела творятся,<br///> в;нашем[]мире                               !';
$text = trim(strip_tags($text));
$arr = preg_split("|[^_-\w\dАаБбВвГгДдЕеЁёЖжЗзИиЙйКкЛлМмНнОоПпРрСсТтУуФфХхЦцЧчШшЩщЪъЫыЬьЭэЮюЯя]+|i", $text, -1, PREG_SPLIT_NO_EMPTY);

  Ответить  
 
 автор: cheops   (31.03.2011 в 22:26)   письмо автору
 
   для: prodigy   (31.03.2011 в 22:21)
 

Лучше помещать в журнал все сообщения пользователей на которые не было найдено результатов и наиболее популярные запросы регулярно рассматривать и вводить для них правила обработки.

  Ответить  
 
 автор: prodigy   (31.03.2011 в 22:21)   письмо автору
 
   для: cheops   (31.03.2011 в 18:46)
 

>1. Можно воспользоваться функцией preg_split() и регулярным выражением вида
>
/[\s.,:!?]+/

>2. Автоматического решения тут нет, придется искать алгоритм по ошибкам набора. В любом случае это здорово увеличивает нагрузку.

Согласен, второе требование даст большую нагрузку, и долго придумывать его, просто, бывает, юзер набирает STALKER вместо S.T.A.L.K.E.R. и база не видит это, в общем сделать хороший поиск на все случаи жизни очень сложно, как выход, можно приделать поиск от гугла, думаю, это единственный вариант.

  Ответить  
 
 автор: cheops   (31.03.2011 в 18:46)   письмо автору
 
   для: prodigy   (31.03.2011 в 18:42)
 

1. Можно воспользоваться функцией preg_split() и регулярным выражением вида
/[\s.,:!?]+/

2. Автоматического решения тут нет, придется искать алгоритм по ошибкам набора. В любом случае это здорово увеличивает нагрузку.

  Ответить  
 
 автор: prodigy   (31.03.2011 в 18:42)   письмо автору
 
 

Хочу сделать поиск на сайте и вот нужно чтоб:

1. запрос разбивался на слова, если в конце слова есть пробелы или знаки препинания;
2. чтоб каждое полученное слово могло иметь в любом месте ошибку но база все равно его могла вытащить, типа:

запрос от пользователя: 'Чилавек поук'

а база должна выдать похожее, к примеру: 'Человек паук'

  Ответить  

Сообщения:  [1-5] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования