gnollik
Новичок
здравствуйте, опишу в кратце что есть и что надо:
есть майскл база на 100к строк. В ней есть 3 колонки (страна, штат, город) по которым надо сделать выборку.
Выборки нужно 2:
1я точная где юзер в определенные поля вводит страну, штат (если есть) и город - с этим проблем нет, уже сделал.
2я где юзер в одно поле вводит запрос. И вот тут проблема так как хз в каком порядке и что он там будет вводить... Тоесть он может ввести только город (или вообще только часть города если название города из 2-3 слов) + может ввести штат (а может и не ввести) + может ввести страну(причем хз, или полностью united states of america или usa или вообще сокращено us). Так же он может ввести в любом порядке, тоесть "штат, город, страна" или "город, страна, штат"...
В принципе я примерно понимаю как делать:
1. разобрать строку на слова.
2. прогнать поиск каждого слова по колонке "страна".
3. если найдена страна, то дальше искать оставшиеся слова в колонке "штат" в привязке к найденной стране.
4. Если ничего не найдется в колонке "штат" то переходить к городам...
Ну и так далее, хоть и примерно, но понятно в какую сторону копать.
Но вот есть например в "америке" город под названием "польша", тоесть если юзер введет польша (город) + америка (страна) то он ничего не найдет, а если и найдет, то фигню какую-то... И ето не единичный пример, таких пересечений достаточно много (на 100к строк 1000-2000 строк найдется с подобной фигней) - как с таким теоретически можно бороться?
Получается несколько проблем:
1. united states of america или usa или вообще сокращено us
2. пересечения типа "польша (город) + америка (страна)"
3. кол-во запросов - ето тоже непонятно, тоесть можно наверное написать 50 разных вариантов переборок, которые перекрестными выборками доставали то что надо, только хз сколько ресов на сервере будет на ето уходить, если одновременно 100 юзеров будут что-то искать по такой достаточно не малой базе еще и с таким кол-вом переборов...
есть майскл база на 100к строк. В ней есть 3 колонки (страна, штат, город) по которым надо сделать выборку.
Выборки нужно 2:
1я точная где юзер в определенные поля вводит страну, штат (если есть) и город - с этим проблем нет, уже сделал.
2я где юзер в одно поле вводит запрос. И вот тут проблема так как хз в каком порядке и что он там будет вводить... Тоесть он может ввести только город (или вообще только часть города если название города из 2-3 слов) + может ввести штат (а может и не ввести) + может ввести страну(причем хз, или полностью united states of america или usa или вообще сокращено us). Так же он может ввести в любом порядке, тоесть "штат, город, страна" или "город, страна, штат"...
В принципе я примерно понимаю как делать:
1. разобрать строку на слова.
2. прогнать поиск каждого слова по колонке "страна".
3. если найдена страна, то дальше искать оставшиеся слова в колонке "штат" в привязке к найденной стране.
4. Если ничего не найдется в колонке "штат" то переходить к городам...
Ну и так далее, хоть и примерно, но понятно в какую сторону копать.
Но вот есть например в "америке" город под названием "польша", тоесть если юзер введет польша (город) + америка (страна) то он ничего не найдет, а если и найдет, то фигню какую-то... И ето не единичный пример, таких пересечений достаточно много (на 100к строк 1000-2000 строк найдется с подобной фигней) - как с таким теоретически можно бороться?
Получается несколько проблем:
1. united states of america или usa или вообще сокращено us
2. пересечения типа "польша (город) + америка (страна)"
3. кол-во запросов - ето тоже непонятно, тоесть можно наверное написать 50 разных вариантов переборок, которые перекрестными выборками доставали то что надо, только хз сколько ресов на сервере будет на ето уходить, если одновременно 100 юзеров будут что-то искать по такой достаточно не малой базе еще и с таким кол-вом переборов...