|
|
|
[PHP] Исключение слов из строки поискового запроса
|
|||
|---|---|---|---|
|
#18+
Доброго времени суток. У меня возможно и тривиальный вопрос, но в силу своей неосведомленности, не знаю как его решить. Помогите, пожалуйста. Если данная проблема уже ранее решалась на этом форуме, то заранее извиняюсь. И так, по делу. Имеется запрос, в котором ищется совпадение введенного слова или слов с данными в таблице. Необходимо, чтобы из введенного слова или слов удалялись определенные слова, если таковы имеются в нем, и только после этого производился поиск по таблице с данными. Как и с помощью чего это можно осуществить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.11.2012, 02:24 |
|
||
|
[PHP] Исключение слов из строки поискового запроса
|
|||
|---|---|---|---|
|
#18+
Как понимаю, требуется применить некий фильтр. Проще всего банальная замена подстроки в цикле по словарю "неугодных" слов, но насколько это приемлемо к Вашей задаче - это Вам виднее. Для точного соответствия оно еще куда ни шло, но в реале окажется скорее всего гораздо сложней. Возможно, более правильным будет разбить входную фразу в массив, сохранив в каждый элемент по одному слову. Затем поэлементно проверить массив на соответствие различным словоформам и удалить ненужные. Из оставшегося собрать условие отбора. Или Вы хотите эту задачу решить исключительно средствами MySQL? Сомневаюсь, но, если хотите, могу перенести топик в профильный форум. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.11.2012, 02:43 |
|
||
|
[PHP] Исключение слов из строки поискового запроса
|
|||
|---|---|---|---|
|
#18+
vkleКак понимаю, требуется применить некий фильтр. Проще всего банальная замена подстроки в цикле по словарю "неугодных" слов, но насколько это приемлемо к Вашей задаче - это Вам виднее. Для точного соответствия оно еще куда ни шло, но в реале окажется скорее всего гораздо сложней. Возможно, более правильным будет разбить входную фразу в массив, сохранив в каждый элемент по одному слову. Затем поэлементно проверить массив на соответствие различным словоформам и удалить ненужные. Из оставшегося собрать условие отбора. Суть такая, скажем ввожу в поиск фразу "проверка текст", в скрипте слово "текст" записано в исключения и следовательно введенная фраза обрабатывается и остается только "проверка" и уже по этому слову начинается поиск по таблице. На практике имею следующие, имеются несколько таблиц где записаны адреса улиц, но записаны по разному, т.е. в одной прописано например "Невский", в другой "Невский пр.", в третий "Невский пр-т". И адресов в каждой таблице по 6-8 тыс. Хоть и поиск задан через неточные совпадения (%...%), но скажем, если человек введет "Невский проспект", то ему следовательно ничего не выдаст, по-этому у меня и появилась задача исключить самые частые дополнения плана (пр-т, проспект, пр. и тому подобное) перед самим поиском, чтобы по таблицам он искал "Невский". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.11.2012, 03:47 |
|
||
|
[PHP] Исключение слов из строки поискового запроса
|
|||
|---|---|---|---|
|
#18+
vkleИли Вы хотите эту задачу решить исключительно средствами MySQL? Не хотелось бы туда влезать, но если выбора нет, то... =) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.11.2012, 03:53 |
|
||
|
[PHP] Исключение слов из строки поискового запроса
|
|||
|---|---|---|---|
|
#18+
Минин Игорь, В той программе, которая производит генерацию SQL-запросов и из отправку на выполнение в MySQL, вставьте замену ненужных подстрок на пустые подстроки. Если покажете этот фрагмент кода, то, возможно, кто-нибудь даже посоветует что-то более детальное. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.11.2012, 05:17 |
|
||
|
[PHP] Исключение слов из строки поискового запроса
|
|||
|---|---|---|---|
|
#18+
Минин ИгорьvkleИли Вы хотите эту задачу решить исключительно средствами MySQL? Не хотелось бы туда влезать, но если выбора нет, то... =)Вы так озаглавили тему обсуждения О каком языке программирования идет речь? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.11.2012, 10:18 |
|
||
|
[PHP] Исключение слов из строки поискового запроса
|
|||
|---|---|---|---|
|
#18+
vkleВы так озаглавили тему обсуждения О каком языке программирования идет речь? Ну это моя ошибка, не так назвал тему. В общем идет речь о PHP. Можно ли используя его обработать таким способом вводимые данные, о чем говорил в предыдущем сообщении. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.11.2012, 14:30 |
|
||
|
[PHP] Исключение слов из строки поискового запроса
|
|||
|---|---|---|---|
|
#18+
Вполне возможно. Начиная от простейшего str_replace. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.11.2012, 14:37 |
|
||
|
[PHP] Исключение слов из строки поискового запроса
|
|||
|---|---|---|---|
|
#18+
Спасибо, что изменили название темы. vkleВполне возможно. Начиная от простейшего str_replace. А можно с помощью этой функции заменить несколько значений на пустые? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.11.2012, 14:50 |
|
||
|
[PHP] Исключение слов из строки поискового запроса
|
|||
|---|---|---|---|
|
#18+
Минин ИгорьА можно с помощью этой функции заменить несколько значений на пустые? Все понял, нашел, спасибо за помощь. Если несколько значений нужно исключить, то перед этой функцией нужно создать переменную с масивом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.11.2012, 15:04 |
|
||
|
[PHP] Исключение слов из строки поискового запроса
|
|||
|---|---|---|---|
|
#18+
Мне показалось, что таким образом Вы от скули защититься хотите =) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.11.2012, 21:12 |
|
||
|
[PHP] Исключение слов из строки поискового запроса
|
|||
|---|---|---|---|
|
#18+
Минин ИгорьvkleКак понимаю, требуется применить некий фильтр. Проще всего банальная замена подстроки в цикле по словарю "неугодных" слов, но насколько это приемлемо к Вашей задаче - это Вам виднее. Для точного соответствия оно еще куда ни шло, но в реале окажется скорее всего гораздо сложней. Возможно, более правильным будет разбить входную фразу в массив, сохранив в каждый элемент по одному слову. Затем поэлементно проверить массив на соответствие различным словоформам и удалить ненужные. Из оставшегося собрать условие отбора. Суть такая, скажем ввожу в поиск фразу "проверка текст", в скрипте слово "текст" записано в исключения и следовательно введенная фраза обрабатывается и остается только "проверка" и уже по этому слову начинается поиск по таблице. На практике имею следующие, имеются несколько таблиц где записаны адреса улиц, но записаны по разному, т.е. в одной прописано например "Невский", в другой "Невский пр.", в третий "Невский пр-т". И адресов в каждой таблице по 6-8 тыс. Хоть и поиск задан через неточные совпадения (%...%), но скажем, если человек введет "Невский проспект", то ему следовательно ничего не выдаст, по-этому у меня и появилась задача исключить самые частые дополнения плана (пр-т, проспект, пр. и тому подобное) перед самим поиском, чтобы по таблицам он искал "Невский". Вот блин, важный пост пропустил... Может вместо поиска ненужных слов стоит замутить через регэкспы: http://stackoverflow.com/questions/1127088/mysql-like-in ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2012, 00:25 |
|
||
|
|

start [/forum/topic.php?fid=23&fpage=127&tid=1464414]: |
0ms |
get settings: |
12ms |
get forum list: |
20ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
87ms |
get topic data: |
14ms |
get forum data: |
4ms |
get page messages: |
75ms |
get tp. blocked users: |
2ms |
| others: | 254ms |
| total: | 476ms |

| 0 / 0 |
