Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / [PHP] Исключение слов из строки поискового запроса / 12 сообщений из 12, страница 1 из 1
18.11.2012, 02:24
    #38042951
[PHP] Исключение слов из строки поискового запроса
Доброго времени суток.
У меня возможно и тривиальный вопрос, но в силу своей неосведомленности, не знаю как его решить. Помогите, пожалуйста. Если данная проблема уже ранее решалась на этом форуме, то заранее извиняюсь.

И так, по делу.

Имеется запрос, в котором ищется совпадение введенного слова или слов с данными в таблице.
Необходимо, чтобы из введенного слова или слов удалялись определенные слова, если таковы имеются в нем, и только после этого производился поиск по таблице с данными. Как и с помощью чего это можно осуществить?
...
Рейтинг: 0 / 0
18.11.2012, 02:43
    #38042955
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[PHP] Исключение слов из строки поискового запроса
Как понимаю, требуется применить некий фильтр. Проще всего банальная замена подстроки в цикле по словарю "неугодных" слов, но насколько это приемлемо к Вашей задаче - это Вам виднее. Для точного соответствия оно еще куда ни шло, но в реале окажется скорее всего гораздо сложней. Возможно, более правильным будет разбить входную фразу в массив, сохранив в каждый элемент по одному слову. Затем поэлементно проверить массив на соответствие различным словоформам и удалить ненужные. Из оставшегося собрать условие отбора.

Или Вы хотите эту задачу решить исключительно средствами MySQL? Сомневаюсь, но, если хотите, могу перенести топик в профильный форум.
...
Рейтинг: 0 / 0
18.11.2012, 03:47
    #38042967
[PHP] Исключение слов из строки поискового запроса
vkleКак понимаю, требуется применить некий фильтр. Проще всего банальная замена подстроки в цикле по словарю "неугодных" слов, но насколько это приемлемо к Вашей задаче - это Вам виднее. Для точного соответствия оно еще куда ни шло, но в реале окажется скорее всего гораздо сложней. Возможно, более правильным будет разбить входную фразу в массив, сохранив в каждый элемент по одному слову. Затем поэлементно проверить массив на соответствие различным словоформам и удалить ненужные. Из оставшегося собрать условие отбора.

Суть такая, скажем ввожу в поиск фразу "проверка текст", в скрипте слово "текст" записано в исключения и следовательно введенная фраза обрабатывается и остается только "проверка" и уже по этому слову начинается поиск по таблице.

На практике имею следующие, имеются несколько таблиц где записаны адреса улиц, но записаны по разному, т.е. в одной прописано например "Невский", в другой "Невский пр.", в третий "Невский пр-т". И адресов в каждой таблице по 6-8 тыс. Хоть и поиск задан через неточные совпадения (%...%), но скажем, если человек введет "Невский проспект", то ему следовательно ничего не выдаст, по-этому у меня и появилась задача исключить самые частые дополнения плана (пр-т, проспект, пр. и тому подобное) перед самим поиском, чтобы по таблицам он искал "Невский".
...
Рейтинг: 0 / 0
18.11.2012, 03:53
    #38042969
[PHP] Исключение слов из строки поискового запроса
vkleИли Вы хотите эту задачу решить исключительно средствами MySQL?
Не хотелось бы туда влезать, но если выбора нет, то... =)
...
Рейтинг: 0 / 0
18.11.2012, 05:17
    #38042973
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[PHP] Исключение слов из строки поискового запроса
Минин Игорь,

В той программе, которая производит генерацию SQL-запросов и из отправку на выполнение в MySQL, вставьте замену ненужных подстрок на пустые подстроки. Если покажете этот фрагмент кода, то, возможно, кто-нибудь даже посоветует что-то более детальное.
...
Рейтинг: 0 / 0
18.11.2012, 10:18
    #38043007
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[PHP] Исключение слов из строки поискового запроса
Минин ИгорьvkleИли Вы хотите эту задачу решить исключительно средствами MySQL?
Не хотелось бы туда влезать, но если выбора нет, то... =)Вы так озаглавили тему обсуждения

О каком языке программирования идет речь?
...
Рейтинг: 0 / 0
18.11.2012, 14:30
    #38043096
[PHP] Исключение слов из строки поискового запроса
vkleВы так озаглавили тему обсуждения

О каком языке программирования идет речь?

Ну это моя ошибка, не так назвал тему. В общем идет речь о PHP. Можно ли используя его обработать таким способом вводимые данные, о чем говорил в предыдущем сообщении.
...
Рейтинг: 0 / 0
18.11.2012, 14:37
    #38043100
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[PHP] Исключение слов из строки поискового запроса
Вполне возможно. Начиная от простейшего str_replace.
...
Рейтинг: 0 / 0
18.11.2012, 14:50
    #38043106
[PHP] Исключение слов из строки поискового запроса
Спасибо, что изменили название темы.

vkleВполне возможно. Начиная от простейшего str_replace.

А можно с помощью этой функции заменить несколько значений на пустые?
...
Рейтинг: 0 / 0
18.11.2012, 15:04
    #38043116
[PHP] Исключение слов из строки поискового запроса
Минин ИгорьА можно с помощью этой функции заменить несколько значений на пустые?

Все понял, нашел, спасибо за помощь. Если несколько значений нужно исключить, то перед этой функцией нужно создать переменную с масивом.
...
Рейтинг: 0 / 0
18.11.2012, 21:12
    #38043402
phpz
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[PHP] Исключение слов из строки поискового запроса
Мне показалось, что таким образом Вы от скули защититься хотите =)
...
Рейтинг: 0 / 0
19.11.2012, 00:25
    #38043489
phpz
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[PHP] Исключение слов из строки поискового запроса
Минин ИгорьvkleКак понимаю, требуется применить некий фильтр. Проще всего банальная замена подстроки в цикле по словарю "неугодных" слов, но насколько это приемлемо к Вашей задаче - это Вам виднее. Для точного соответствия оно еще куда ни шло, но в реале окажется скорее всего гораздо сложней. Возможно, более правильным будет разбить входную фразу в массив, сохранив в каждый элемент по одному слову. Затем поэлементно проверить массив на соответствие различным словоформам и удалить ненужные. Из оставшегося собрать условие отбора.

Суть такая, скажем ввожу в поиск фразу "проверка текст", в скрипте слово "текст" записано в исключения и следовательно введенная фраза обрабатывается и остается только "проверка" и уже по этому слову начинается поиск по таблице.

На практике имею следующие, имеются несколько таблиц где записаны адреса улиц, но записаны по разному, т.е. в одной прописано например "Невский", в другой "Невский пр.", в третий "Невский пр-т". И адресов в каждой таблице по 6-8 тыс. Хоть и поиск задан через неточные совпадения (%...%), но скажем, если человек введет "Невский проспект", то ему следовательно ничего не выдаст, по-этому у меня и появилась задача исключить самые частые дополнения плана (пр-т, проспект, пр. и тому подобное) перед самим поиском, чтобы по таблицам он искал "Невский".

Вот блин, важный пост пропустил... Может вместо поиска ненужных слов стоит замутить через регэкспы:
http://stackoverflow.com/questions/1127088/mysql-like-in
...
Рейтинг: 0 / 0
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / [PHP] Исключение слов из строки поискового запроса / 12 сообщений из 12, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]