BG Development


  Reply to this topicStart new topicStart Poll

> MySQL "интелигентно" търсене
samominavam
Публикувано на: 22-05-2019, 23:04
Quote Post



Име:
Група: Потребител
Ранг: Редовен член

Мнения: 323
Регистриран на: 22.08.17



Трябва да направя интелигентно търсене което ще се ползва от хора с не до там добри умения за боравене с РС.

Имам база данни с клиенти - ид, име, имейл, телефон, булстат и трябва да търсч във нея и подреждам резултатите по съвпадение.

Пример - имаме много Ивайловци, но само един Ивайло Рачев и клиенти потърси със ивайло рач да му извадим само Ивайло Рачев като резултат или поне да е първи:
user posted image
Признавам, че досега не ми се налагало да правя подобно нещо, това ми е кода:

SQL
SELECT * FROM clients WHERE MATCH (clients_name, clients_phone, clients_email, clients_firm_name,clients_bulstat) AGAINST ('ивайло рач')


Как да подредя резултатите по съвпадение?

Да допълня:
SQL
SELECT clients_name, MATCH (clients_name, clients_phone, clients_email, clients_firm_name,clients_bulstat) AGAINST ('ивайло рач') as kor FROM clients WHERE MATCH (clients_name, clients_phone, clients_email, clients_firm_name,clients_bulstat) AGAINST ('ивайло рач')

и резултата е:
user posted image

нещо ми се губи логиката тука, да не би да е заради кирилицата? Ползвам utf8_general_ci кодировка.

Това мнение е било редактирано от samominavam на 22-05-2019, 23:20
PMEmail Poster
Top
samominavam
Публикувано на: 22-05-2019, 23:42
Quote Post



Име:
Група: Потребител
Ранг: Редовен член

Мнения: 323
Регистриран на: 22.08.17



SQL
SELECT *, MATCH (clients_name, clients_phone, clients_email, clients_firm_name,clients_bulstat) AGAINST ('{$q}*' IN BOOLEAN MODE) as kor FROM clients WHERE MATCH (clients_name, clients_phone, clients_email, clients_firm_name,clients_bulstat) AGAINST ('{$q}*' IN BOOLEAN MODE) ORDER BY kor DESC

Трябвало малко да прочета, това е решението. Работи перфектно.
PMEmail Poster
Top
thrawn
Публикувано на: 23-05-2019, 06:38
Quote Post



Име:
Група: Потребител
Ранг: Почетен член

Мнения: 2334
Регистриран на: 17.01.17



Ц,
Фултекстът търси по фраза. Така както си го направил ще търси само за "ивайло рач*" но не и за "ива* рач*" или "ива* рачев". Та ще трябва или да си поиграеш да напляскаш звездички преди и след всяка дума (излишно усилие, което не винаги ще е това което иска потребителя) или просто да оставиш потребителя да си ги слага там където смята, че му трябват.

Общо взето, направи си просто търсене по стринг (по подразбиране) и разширено търсене (фултекстът) за по-сложни търсения (където потребителя ще трябва да покаже малко познания). Това няма нищо общо с уменията на потребителите да работят с ПС.
PMEmail Poster
Top
samominavam
Публикувано на: 23-05-2019, 18:21
Quote Post



Име:
Група: Потребител
Ранг: Редовен член

Мнения: 323
Регистриран на: 22.08.17



QUOTE (thrawn @ 23-05-2019, 06:38)
Ц,
Фултекстът търси по фраза. Така както си го направил ще търси само за "ивайло рач*" но не и за "ива* рач*" или "ива* рачев". Та ще трябва или да си поиграеш да напляскаш звездички преди и след всяка дума (излишно усилие, което не винаги ще е това което иска потребителя) или просто да оставиш потребителя да си ги слага там където смята, че му трябват.

Общо взето, направи си просто търсене по стринг (по подразбиране) и разширено търсене (фултекстът) за по-сложни търсения (където потребителя ще трябва да покаже малко познания). Това няма нищо общо с уменията на потребителите да работят с ПС.

Моля те, ако трябва да слагат звездички ще ям бой.
Тия хора е абсурд да се оправят.

Инак според това което четох, звезда може да се слага само веднъж и то в края на стринга или бъркам?
Макар, че работи търсенето сега и подрежда правилно. Но днес друго двайсе -
имаме фирма ЗП Иван Темелков и искат да ако напишат тИмелков пак да им излиза ЗП Иван Темелков

Такова търсене може ли да се направи?
PMEmail Poster
Top
thrawn
Публикувано на: 23-05-2019, 18:33
Quote Post



Име:
Група: Потребител
Ранг: Почетен член

Мнения: 2334
Регистриран на: 17.01.17



Звезди, скоби, плюсове, минуси и т.н. могат да се пишат на колкото места ти трябват.
Относно втората част на въпроса - това касае специфично индексиране. По подразбиране го няма в базите данни (поне аз не знам да го има) та ще трябва или да си го реализираш сам или да ползваш енджин за търсене.
PMEmail Poster
Top
samominavam
Публикувано на: 23-05-2019, 20:19
Quote Post



Име:
Група: Потребител
Ранг: Редовен член

Мнения: 323
Регистриран на: 22.08.17



QUOTE (thrawn @ 23-05-2019, 18:33)
Звезди, скоби, плюсове, минуси и т.н. могат да се пишат на колкото места ти трябват.
Относно втората част на въпроса - това касае специфично индексиране. По подразбиране го няма в базите данни (поне аз не знам да го има) та ще трябва или да си го реализираш сам или да ползваш енджин за търсене.

Утре ще пробвам това със звездите, ако се подобри търсенето супер.

Втората част явно няма да я бъде. 500 записа по 10 пъти на ден ги ровят и не ги запомниха дейба...
PMEmail Poster
Top
computer
Публикувано на: 24-05-2019, 11:03
Quote Post



Име:
Група: Потребител
Ранг: Новопостъпил

Мнения: 45
Регистриран на: 13.10.16



Ориентирай се към Sphinx search. Всички неща които ти ги искат там ги има нейтив.
PMEmail Poster
Top
samominavam
Публикувано на: 24-05-2019, 14:44
Quote Post



Име:
Група: Потребител
Ранг: Редовен член

Мнения: 323
Регистриран на: 22.08.17



QUOTE (computer @ 24-05-2019, 11:03)
Ориентирай се към Sphinx search. Всички неща които ти ги искат там ги има нейтив.

От гугъла
QUOTE
Sphinx would require a VPS. It won’t run on a shared hosting account.

няма бюджет за VPS, или по-скоро за човек който да го поддържа. Иначе това отива в букмаркс.
PMEmail Poster
Top
ba4eto
Публикувано на: 12-06-2019, 22:54
Quote Post



Име: Цветелин
Група: Потребител
Ранг: Новопостъпил

Мнения: 30
Регистриран на: 26.11.04



Ако ще ползваш споделен хостинг според зависи колко много заявки ще имаш месечно, може да си отделиш търсенето и да ползваш това https://www.algolia.com/.


--------------------
Има една истинска любов, любовта към парите.
PMEmail PosterICQ
Top
1 потребители преглеждат тази тема в момента (1 гости, 0 анонимни потребители)
Потребители, преглеждащи темата в момента:

Topic Options Reply to this topicStart new topicStart Poll

 


Copyright © 2003-2019 | BG Development | All Rights Reserved
RSS 2.0