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 :: экранирование символов при FULLTEXT MATCH IN BOOLEAN MODE

 PHP.SU

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


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

> Описание: как правильно экранировать * + - < > ( ) " ...?
DlTA
Отправлено: 22 Мая, 2011 - 04:35:22
Post Id



Постоянный участник


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


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




использую полнотекстовый поиск
по условию необходимо найти полное соответствие текстовых блоков

и тут вылезла "кака"

при использовании IN BOOLEAN MODE, так называемые "операторы", а это + - < ( ~ и т.д. не могут быть частью искомого текста, они выступают как часть условия поиска

пытался экранировать это дело слешем \*, не помогло
может кто знает как правильно это все экранировать?

(Отредактировано автором: 22 Мая, 2011 - 04:49:46)

 
 Top
EuGen Администратор
Отправлено: 22 Мая, 2011 - 13:23:48
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


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




Попробуйте заключать всю искомую фразу в двойные кавычки.


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
DlTA
Отправлено: 22 Мая, 2011 - 18:36:42
Post Id



Постоянный участник


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


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




это я сделал еще в первую очередь

но потом в искомой фразе появился знак *
в базу такой текст добавился но не находится
(это когда оно в двойных кавычках)
 
 Top
OrmaJever
Отправлено: 22 Мая, 2011 - 19:17:01
Post Id



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


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


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




А можно увидеть запрос на поиск?


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
DlTA
Отправлено: 22 Мая, 2011 - 19:37:33
Post Id



Постоянный участник


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


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




OrmaJever пишет:
А можно увидеть запрос на поиск?

PHP:
скопировать код в буфер обмена
  1. $reqSel =
  2.   "SELECT *
  3.  FROM
  4.  (
  5.    SELECT *,  MATCH (`inference`.`header`) AGAINST ('\"$findHeader\"' IN BOOLEAN MODE) AS zapr
  6.    FROM `inference`
  7.    WHERE
  8.    MATCH (`inference`.`header`) AGAINST ('\"$findHeader\"' IN BOOLEAN MODE)
  9.  ) AS predTable
  10.  WHERE
  11.  predTable.`header` LIKE '$findHeader'
  12.  LIMIT 1";

ну а в $findHeader уже передаю искомый текст
в моем случае запнулось на тексте: Бумага размер 76*76

по логике скрипта если в базе не находится искомый текст то он добавляется в базу
если же находится то дополнительные поля к этой записи изменяются

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

полнотекстовое индексирование стоит только по полю `header`
 
 Top
DlTA
Отправлено: 23 Мая, 2011 - 10:50:00
Post Id



Постоянный участник


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


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




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

хотя вопрос остается открытым.
 
 Top
DlTA
Отправлено: 23 Июня, 2011 - 22:18:33
Post Id



Постоянный участник


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


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




в общем проблему решил путем замены управляющих символов их HTML сущностями.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« SQL и Архитектура БД »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB