אתגר לחג - חיפוש מורכב בעזרת Apach Solr
טוב, אולי החג עבר, אבל האתגר נותר.
מצ"ב סכמה של אתר ובו שלושה סוגי תוכן, כאשר אחד מהם מכיל רפרנס לשניים נוספים. החיפוש (המצטמצם) צריך להציג תוצאות מסוג A כאשר התנאים נמצאים בסוגי התוכן האחרים (B ו-C).
לכאורה חיפוש אפשרי בעזרת views, אבל במקרה זה מתבצע החיפוש בעזרת apachesolr_views.module שלא מכיל relationship מסוג node reference.
המוצא הישר יבוא על שכרו (באמת!) :)

| קובץ מצורף | גודל |
|---|---|
| drupal-challenge.png | 194.18 קילובייט |

אם זה דרופל 7, מה לגבי שימוש
אם זה דרופל 7, מה לגבי שימוש ב:
http://drupal.org/project/search_api
שים לב גם להסבר בעמוד:
All of an entity's properties, as well as those of related entities (e.g. a node's author's name), are available as fields, filters
יש לו כבר אינטרגרציה עם solr (שאני משתמש ומרוצה)
אמתי -- חברת גיזרה
כן, כבר התבאסנו מזה :) האתר
כן, כבר התבאסנו מזה :)
האתר נכתב בדרופל 6...
זהר סטולר, לינווייט
לינווייט תשתיות תוכן קהילתיות
המוצא הישר יבוא על שכרו
לא ציינת את זה בתקנון. אני אתפשר על בירה בלונדון :)
ובעניין הפיתרון, יש לך הוקים של סולאר, שמאפשרים לך לדחוף כל מידע שאתה רוצה לתוך הקולקשיין. זאת אומרת, שאתה יכול באופן ידני לדחוף את המידע מהרפרנסים כדי שיאונדקס.
אמתי -- חברת גיזרה
בלי קשר ל apache solr ,
בלי קשר ל apache solr , הפתרון שחשבתי עליו זה להוסיף שדה לישות A שישמור התשובה לשאלה על התכונות של הבנים
הבעיה היא בהנתן אירוע שאחד הבנים לא מקיים תכונה מסוימת , אז צריך לסרוק את כל העץ בשביל לדעת אם קיים בן אחר שכן מקיים התכונה
לכן הייתי מגדיר השדה מסוג integer ומפעיל עליו bit operations :
http://en.wikipedia.org/wiki/Bit_array
כל בן של A מקבל bit בתוך שדה ה integer , נקרא לשדה flag
אז נניח a1,a5,a7 בנים , אז אם a5 מקבל התכונה מפעילים הפעולה :
update tableA set flag | 32
אם אחרת a5 מאבד התכונה מפעילים :
update tableA set flag & 224
כך ש 224 = 5^2 - 8^2
בשביל לקבל כל הישויות A שיש להם תכונה , פשוט בודקים תנאי ש flag >0
בעיה בפתרון זה הוא הגבלת גודל שדה integer , אפשר להתגבר על זה עם מיפוי one-to-many אבל זה קצת מסבך העניינים
yakoub abaya
יעקב אני כל כך שמח שאתה מעלה
יעקב אני כל כך שמח שאתה מעלה ביטווייז אופריישנז, חשבתי שPHP-סטים לא יודעים מה זה... כל המודולים שראיתי תמיד מכילים עוד ועוד בוליאנים - שדה נפרד לכל דבר - במקום ביט-אריי פשוט אחד.
רק אני רוצה להדגיש, אמנם פעולות ביטווייז יעילות מאוד אך מבחינת קריאות של מסד הנתונים זה פחות קריא. לא שזה צריך למנוע מלהשתמש בזה.
כמה?
- 7.
מה 7?
- 1, 2, 4
אמיר
| פרקטיקול - בונים לך אתר דרופל | עזרה מידית בקבוצה שלנו בפייסבוק! | שיעורי דרופל דרך האינטרנט
זה פתרון מעניין. נבדוק אותו.
זה פתרון מעניין. נבדוק אותו.
זהר סטולר, לינווייט
לינווייט תשתיות תוכן קהילתיות
היי זהר. כתבת "שלושה סוגי
היי זהר.
כתבת "שלושה סוגי תוכן, כאשר אחד מהם מכיל רפרנס לשניים נוספים" אבל לפי התרשים אני לא רואה אף סוג תוכן שמצביע לשניים אחרים.
| פרקטיקול - בונים לך אתר דרופל | עזרה מידית בקבוצה שלנו בפייסבוק! | שיעורי דרופל דרך האינטרנט