Felfedett szűrés szótár alapján

charlos képe

Sziasztok!

Csináltam egy tartalomtípust, melyhez társítottam két szótárat: Kategóriák és Címkék. A Kategóriák ilyen kifejezéseket tartalmaznak: Boltok, Művelődési intézmények, Éttermek, stb. A címkéket pedig a tartalom beküldése idején írják be a felhaználók. Majd készítettem egy nézetet, ahol a 2 szótár kifejezéseit felfedtem, így a látogató maga szűrhet a kifejezések között. Igen ám, de a 2 legördülő mező nincs szinkronban, vagyis ha Boltokat jelölöm meg kategóriának, attól még választható a színház és a múzeum is, ami nyilván nem jó, hiszen a boltban nem színdarabot nézünk. :) Tehát, ti hogyan oldanátok meg? A cél az lenne, hogy a Boltokat kiválasztva csak az ezzel releváns kifejezések jelenjenek meg.

Lehet, hogy teljesen rossz úton járok?

Melyik modulhoz, modulokhoz kapcsolódik a téma?: 
Drupal verzió: 
aboros képe

amit csinálni szeretnél, az talán a "faceted search" eljáráshoz hasonlít a legjobban. a felfedett szűrőknek ez nem célja. rá lehet venni őket mindenféle trükkökkel, hogy így működjenek. nagy vonalakban azt csinálnád, hogy a view megjelenítése előtt megnéznéd melyik szűrő aktív és a másiknak minden elemére lefuttatnál egy újabb lekérdezést, hogy kiderüljön, hogy a kettő kombinációának is van e eredmény és ha nincs, kivágod azt az elemet, mint a macskát. ez nem lesz valami kényelmes és túlságosan gyors se, hamar egy fenntarthatlan maszlaggá válhat a megoldásod, ha más szűrőket is be kell vezetni, stb. ne csináld.

van egy olyan modul, hogy faceted_search, azzal tudsz ilyen "faceted search" eljárást csinálni, mysql adatbázisban, aminek az lesz a baja, hogy nagyobb mennyiségű nodenál (10K+) elkezd majd igen lassú lenni és mindenféle szerver oldali vuduval kell megtámogassad, hogy ne fagyjon tőle csontra a szerver, ha sokan keresnek egyszerre bonyolult feltételrendszerekkel. (kilóméter hosszan áll majd a slow query a logban)

vannak nem mysql alapú, direkt keresésre írt programok is, ilyen peldaul a solr. ezt tudod használni apachesolr modullal. ez is tud ilyen facsettás :) keresést, meg sok mást is, ez egy java alapú indexelő/kereső izé tulajdonképpen. emiatt ezzel ilyen teljesítmény gondjaid egy jódarabig nem lesznek. (pl drupal.org -on is ilyenben keresel)

és van search_api nevű modul is, de ez már csak 7.x -re. ez már igen! nagyon rugalmas, jó általános, többféle "backendet" tud használni. ezt használja (solr backenddel) a drupal.hu.

utóbbi kettő shared host környezetben szinte biztos, hogy nem fog menni, mert ott nem isten bizony, hogy csak a te kedvedért feltesznek egy solrt a szerverre.

3
0

-
clear: both;

charlos képe

Ezesetben van olyan modul, ami segítségével a tartalom beküldésekor beállíthatom, hogy a beírt címke, mely szülőhöz tartozzon? Olyan módon, mint az admin felületen belül a Kifejezés szerkesztése oldalon, a Haladó beállításokban.

0
0

--

Üdv:
Charlos

aboros képe

nem akartam elvenni nagyon a kedved ám a faceted_search modultól. próbáld ki, megéri. például ez is azt használja: http://bor-neked.hu/borkereso

ha hierarchikus szótárat használsz, akkor lehet ugye egyik term egy másik term gyereke. de akkor meg nem lehet szabad szavas a szótár. :) ezt féligmeddig meg tudod kerülni azzal, hogy content_taxonomy modullal mezősíted a szóban forgó (amúgy hierarchikus) szótárat. az új termekkel akkor is gáz lesz, egy humanoidnak kell majd berendezgetnie őket a hierarchiába.

én kipróbálnám a faceted_search modult, szerintem szépen fog menni, ha mégse akkor meg legalább tudod, hogy ilyen is van de már kinőtted :)

2
0

-
clear: both;

charlos képe

s pont ugyanezt szeretném megoldani. El tudnád mondani nagy vonalakban, hogy az általad linkelt címen lévő szűrő oldalt, hogy készítetted el? Én csak addig jutottam, hogy kidobta az összes kifejezést kattintható formában... Köszi előre is!

0
0

--

Üdv:
Charlos

aboros képe

egyszer mintha már leírtam volna, úgyhogy rákerestem a hozzászólásokban arra, hogy "borkereso" és lám a search_api -s kereső milyen tuti: http://drupal.hu/search/comment/borkereso első találat :)
http://drupal.hu/comment/43177#comment-43177

1
0

-
clear: both;