Индексирование

hawk1

Новичок
В первом случае ищется только первое совпадение, а мне надо заменить во всем тексте.
 

prolis

Новичок
В первом случае ищется только первое совпадение, а мне надо заменить во всем тексте.
хорошо, пойдем другим путем: зачем тебе понадобилось первые букву/слово в строке заменить на пробел?
<telepat_mode>
Ты ведь хотел просто удалить все небуквенные символы из описания?
</telepat_mode>
 

chira

Новичок
Не нужно валить все данные в одно поле, тем более ты знаешь, что твои данные это телефоны. Сделай таблицу с телефонами привязанную к клиенту и простые insert,delete,update в базе спасут тебя от ненужных регулярных выражений.
 

hawk1

Новичок
С регуляркой разобрался, осталось составить поисковый запрос с использованием булевых операторов. Есть 3 таблицы - термов, телефонов и инверсная.
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
С регуляркой разобрался, осталось составить поисковый запрос с использованием булевых операторов. Есть 3 таблицы - термов, телефонов и инверсная.
Да, можно, составляй, разрешаем.
 

hawk1

Новичок
Немного не догоняю как он должен выглядеть. Начало такое
SQL:
select * from mobiles where mobile_id in (select mobile_id from inversetable where
Когда ищется хотя бы одно слово (ИЛИ) все легко и просто. Но как быть когда ищутся все слова (И)?
 

phprus

Moderator
Команда форума
hawk1
Во внутреннем запросе к inversetable добавить group by mobile_id having count(mobile_id) = число_слов_в_запросе

Только такие запросы с подзапросами, группировками и having-фильтрами будут работать не быстро. При наличии возможности я бы поставил специализированное решение для поиска. Например, Sphinx.

P.S> В поиске некоторое время назад подобный запрос уже обсуждался.
 
Сверху