הוסטס - פורום אחסון האתרים הגדול בישראל

הוסטס - פורום אחסון האתרים הגדול בישראל (https://hosts.co.il/forums/index.php)
-   פורום תיכנות (https://hosts.co.il/forums/forumdisplay.php?f=14)
-   -   שאילתה חיפוש. (https://hosts.co.il/forums/showthread.php?t=87778)

morsrh 01-02-11 22:04

שאילתה חיפוש.
 
שלום ,
יש לי את השאילתה הזאת :

PHP קוד:

SELECT `titleFROM `topicsWHERE `titleLIKE '%".$this->keyword."%' LIMIT 15 

לי לי במסד רשימה מילים שהולכת ככה name1 , name2 וכך אלה עד 5.
עכשיו נגיד אני מכניס את המילה "na" זה משלים לי ל-"name1" , יופי . אבל אם אני עושה "nhme" זה לא משלים לי , עכשיו השאלה שלי זה איך אני יכול להרחיב לו את הגמישות בחיפוש , שיחפש עם יותר גמישות למילים שאם התפקשש אות או מילה פה או שם זה עדיין יחפש משהו דומה לפחות ולא פשוט ישלים אותו..
איך אני יכול לעשות דבר כזה? אני לא מדבר על מימדים שישלים לי כמה מילים , אלה אות פה או שם..

תודה.

BlueNosE 01-02-11 22:53

שמור ערך של soundex או metaphone במסד, ותשווה אליו במקום.
לחילופין, תעשה המון ORים, כשבכל פעם יש לך במקום תו אחר את התו "_" שהוא wildcard ב-LIKE.

כלומר:

קוד:

hello ->
_ello
h_llo
he_lo
hel_o
hell_


ואז זה ימצא לך גם את cello וגם את helio.

morsrh 01-02-11 23:18

ניראה לי שהרבה OR יכול להעמיס קשות על המסד ובכלל שהחיפוש הוא חיפוש שנעשה ע"י AJAX ו-onkeyup ..
אין משהו סימלי יותר שאפשר לעשות?
לא גמישות של מילים , גמישות של אות אחת או שתיים..
תודה.

BlueNosE 01-02-11 23:32

נתתי לך פה 2 אופציות, למה להתעלם מהשניה?

morsrh 02-02-11 00:28

OR אני אפילו לא יכול לחשוב על זה , יעמיס בצורה של עד קריסה ..
והאופציה הראשונה על soundex או metaphone הם לא תומכים בעברית נראה לי , דווקא היה מתאים לי אחד כזה , יש אופציה לקמבן דבר כזה לעברית?

BlueNosE 02-02-11 14:55

http://stevemorse.org/hebrew/dmheb.html
יש כאן אלגוריתם בJS. תעשה המרה לPHP.

http://www.avotaynu.com/soundex.htm
עוד מידע.


כל הזמנים הם GMT +2. הזמן כעת הוא 13:13.

מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ