Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Wyszukiwanie fulltext a wielkość liter
quba
post 25.10.2010, 16:46:30
Post #1





Grupa: Zarejestrowani
Postów: 32
Pomógł: 0
Dołączył: 1.10.2005
Skąd: Olesno

Ostrzeżenie: (0%)
-----


Co muszę zrobić, by mysql zwracał wyniki niezależnie od wielkości znaków słowa zapisanego w bazie danych?

Przykładowo gdzieś w tekście w bazie danych pojawia sie słowo 'razDWATRZY'. Obecnie, by wyszukać taki element za pomocą match against, musze podać dokładnie taki ciąg znaków. Ciekawi mnie to, gdyż współpracując z inną bazą danych, wyszukiwało mi w ten sam sposób dobrze (nie patrząc na wielkość liter). Dodałem oczywiście klucz fulltext na kolumne w której szukam. Może ma to związek z ilością rekordów w danej tabeli?


--------------------
Darmowe pozycjonowanie
Go to the top of the page
+Quote Post
Wicepsik
post 25.10.2010, 16:51:30
Post #2





Grupa: Zarejestrowani
Postów: 1 575
Pomógł: 299
Dołączył: 26.03.2009

Ostrzeżenie: (20%)
X----


http://dev.mysql.com/doc/refman/5.0/en/str...#function_lower
lub
http://dev.mysql.com/doc/refman/5.0/en/str...#function_upper

Ten post edytował Wicepsik 25.10.2010, 16:51:58


--------------------
Go to the top of the page
+Quote Post
quba
post 25.10.2010, 16:56:15
Post #3





Grupa: Zarejestrowani
Postów: 32
Pomógł: 0
Dołączył: 1.10.2005
Skąd: Olesno

Ostrzeżenie: (0%)
-----


Jakiś przyklad uzycia? Rozumiem, ze mogę zmniejszyc wielkosc znakow danych, ktore pobieram poprzez LOWER(kolumna). Nie wydaje mi się jednak, by można było tego użyć w stosunku do danych, które mam przeszukiwać.


--------------------
Darmowe pozycjonowanie
Go to the top of the page
+Quote Post
Wicepsik
post 25.10.2010, 17:05:48
Post #4





Grupa: Zarejestrowani
Postów: 1 575
Pomógł: 299
Dołączył: 26.03.2009

Ostrzeżenie: (20%)
X----


Cytat(quba @ 25.10.2010, 17:56:15 ) *
Jakiś przyklad uzycia?


Podane w linkach?

Pokaż swoje zapytanie

Ten post edytował Wicepsik 25.10.2010, 17:06:26


--------------------
Go to the top of the page
+Quote Post
quba
post 25.10.2010, 17:12:08
Post #5





Grupa: Zarejestrowani
Postów: 32
Pomógł: 0
Dołączył: 1.10.2005
Skąd: Olesno

Ostrzeżenie: (0%)
-----


  1. SELECT `text_title` FROM portal_text WHERE MATCH (`text_title`, `text_cache`) AGAINST ('costam' IN BOOLEAN MODE);

  1. SELECT `text_title` FROM portal_text WHERE MATCH (`text_title`, `text_cache`) AGAINST ('COSTAM' IN BOOLEAN MODE);

  1. SELECT `text_title` FROM portal_text WHERE MATCH (`text_title`, `text_cache`) AGAINST ('CoStAm' IN BOOLEAN MODE);


Chcę, aby każde z tych zapytań zwracało ten sam wynik.

Ten post edytował quba 25.10.2010, 17:21:15


--------------------
Darmowe pozycjonowanie
Go to the top of the page
+Quote Post
Wicepsik
post 25.10.2010, 17:26:52
Post #6





Grupa: Zarejestrowani
Postów: 1 575
Pomógł: 299
Dołączył: 26.03.2009

Ostrzeżenie: (20%)
X----


'costam' to wartość z formularza?


--------------------
Go to the top of the page
+Quote Post
quba
post 25.10.2010, 17:30:11
Post #7





Grupa: Zarejestrowani
Postów: 32
Pomógł: 0
Dołączył: 1.10.2005
Skąd: Olesno

Ostrzeżenie: (0%)
-----


tak


--------------------
Darmowe pozycjonowanie
Go to the top of the page
+Quote Post
Wicepsik
post 25.10.2010, 17:56:21
Post #8





Grupa: Zarejestrowani
Postów: 1 575
Pomógł: 299
Dołączył: 26.03.2009

Ostrzeżenie: (20%)
X----


  1. mysql_query('SELECT `text_title` FROM portal_text WHERE MATCH (`text_title`, `text_cache`) AGAINST ("'.strtolower('CoStAm').'" IN BOOLEAN MODE)');


--------------------
Go to the top of the page
+Quote Post
quba
post 25.10.2010, 18:10:02
Post #9





Grupa: Zarejestrowani
Postów: 32
Pomógł: 0
Dołączył: 1.10.2005
Skąd: Olesno

Ostrzeżenie: (0%)
-----


Widać się nie rozumiemy. Chodzi mi o to, że np. chcąc odszukać COŚTAM, zwróci mi zarówno wiersze, w których wystąpiło cośtam, jak i coŚtAm (W BAZIE). Obecnie muszę w kryterium wyszukiwania wskazac tekst dokładnie odpowiadający temu w bazie danych.


--------------------
Darmowe pozycjonowanie
Go to the top of the page
+Quote Post
BaN
post 25.10.2010, 21:08:04
Post #10





Grupa: Zarejestrowani
Postów: 158
Pomógł: 43
Dołączył: 9.11.2007

Ostrzeżenie: (0%)
-----


Odpowiadałem kilka wątków niżej na bardzo podobne pytanie, musisz ustawić sposób porównywanie napisów w bazie na ..._ci, żeby indeksował wyrazy bez uwzględniania wielkości znaków, nie wiem jakie masz aktualnie, dla języka polskiego może to być: `utf8_polish_ci` ewentualnie `latin2_general_ci`
Go to the top of the page
+Quote Post
quba
post 25.10.2010, 21:55:26
Post #11





Grupa: Zarejestrowani
Postów: 32
Pomógł: 0
Dołączył: 1.10.2005
Skąd: Olesno

Ostrzeżenie: (0%)
-----


dzięki, wiedziałem że to coś w ten deseń, ponieważ w poprzedniej bazie mialem latin2_general_ci i działało. Jeszcze nie sprawdzalem, ale na pewno to to, dzięki.


--------------------
Darmowe pozycjonowanie
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 24.07.2025 - 12:46