ugrás a tartalomhoz

Google Custom Search vagy saját kereső

stan · 2013. Már. 14. (Cs), 14.44
Van egy weboldalam, amely egy többnyelvű oldal, és rendezvényeket lehet rajta keresni. Tehát egy adatbázis, ami rendezvényeket tartalmaz idő, kategória és helyszín szerint, különböző Európai országokból vegyesen. Na most azon gondolkodtam, hogy a Google Custom Search vagy egy saját kereső lenne-e a célszerűbb az oldalra.

Google Custom Serach előnyei:
- egyszerű keresés: egyetlen mezőben kell csak írni
- helyettem lekezeli a keresési találtok sorrendjét

Google Custom Serach hátrányai:
- nem tudom testre szabni a keresési lista felépítését, szerkezetét, kinézetét
- csak egyetlen keresési mező van, nem tudok kategória, helyszín vagy időpont szerint keresni


Saját kereső előnyei:
- testre tudom szabni a keresési lista felépítését, szerkezetét, kinézetét
- tudok kategória, helyszín vagy időpont szerint szűrni

Saját kereső hátrányai:
- mivel nem csak egy mezőt kell kitölteni, hanem megadott mezőket (időpont, helyszín, kategória), azért félő, hogy a felhasználó összezavarodik a túl sok szűrési lehetőségtől
- valahogyan meg kell oldanom a keresési listában szereplő elemek sorrendjét, hogy releváns legyen

Egyszerre a kettőt nyilván nem akarom. Szeretnék egy jó keresőt, ami illeszkedik az oldalamba, egyszerű használni, és testreszabható. Ti mit javasolnátok?
 
1

Saját kereső

Hidvégi Gábor · 2013. Már. 14. (Cs), 14.52
Volt már ilyen téma emlékeim szerint, de most hirtelen nem találtam. Egy saját kereső csak hatékonyabb tud lenni, de nem muszáj neked írnod, használhatsz meglévőt, az Apache-nak van egy már kész megoldása, a Solr, ami számodra jó lehet.
2

virtuális gépen vagyok

stan · 2013. Már. 14. (Cs), 14.56
virtuális gépen vagyok, így nem hiszen, hogy feltennék nekem ezt a komponenst. valami php-mysql megoldásra gondoltam inkább, amelyet magam írnék meg, mert igazából szeretném megfelelően testre szabni, ha saját kereső mellett döntök
3

A google keresője csak

Hidvégi Gábor · 2013. Már. 14. (Cs), 14.59
A google keresője csak szövegeket talál meg, tehát részletes keresésre alkalmatlan, szűrni nem lehet, itt, a weblaboron is csak dísznek van.
4

igaz

stan · 2013. Már. 14. (Cs), 15.09
igazad van ebben. de ha csinálok egy saját keresőt, akkor szerinted hogyan érdemes megcsinálni?

1. módszer:
Legyen egy [Kategória] - [Helyszín] - [Időintervallum] - [Szabadszöveg] keresési blokk, és akkor azt állítasz be, amit akarsz. Ha valamelyikbe nem írsz, az nem baj, de írhatsz mindegyikbe is (vagy kiválaszthatod, ha legördülő menü).

2. módszer:
Legyen csak egy [Szabad szöveg], és aztán ha elindítod a keresést, akkor alatta megjelenne a [Kategória] - [Helyszín] - [Időintervallum], és akkor arra már szűrhetsz, ha valamelyiket átállítod. Olyan keresőre gondolok, mint a Youtube-nál, ott is ugyan ez a szisztéma.

Szerinted melyik a jobb módszer?
Te hogyan oldalál meg egy ilyen típusú keresőt, hogy egyszerű is legyen meg érthető is, és ugyan akkor elég részletes is legyen?
5

Nem ismerem pontosan a

Hidvégi Gábor · 2013. Már. 14. (Cs), 15.14
Nem ismerem pontosan a feladatot és a célközönséget, ennyi információ birtokában az elsőt választanám.
6

oké

stan · 2013. Már. 14. (Cs), 15.18
oké köszi, én nekem is az a szimpatikusabb
7

A harmadikat

Pepita · 2013. Már. 14. (Cs), 20.39
- Egyetlen keresőmező;
- A lekérdezésedbe találatként kerül, ha a keresett cucc bármelyik megfelelő oszlopban szerepel ([Kategória] [Helyszín] [Időintervallum] [Szabadszöveg]);
- A pontozási logikát úgy alakítod ki, hogy (pl. egy configból) szabályozható legyen, tehát hány pont, ha Kategória, ha Helyszín, stb.;
- Természetesen a pontozást is a lekérdezésen belül valósítod meg, mert az alapján lesz az ORDER BY;
- Esetleg egy második mező (itt) lehetne egy DatePicker, ha fontosnak érzed.

Az egész lényege, hogy a bonyolult logikát a Júzer terhelése nélkül valósítod meg, de igyekszel úgy pontozni a találatokat, hogy "mindenkinek" tetszen.

Hátránya, hogy nagyon oda kell figyelni a lekérdezésre, hogy nagyobb rekordszámmal is elmenjen.
10

- Egyetlen keresőmező; - A

stan · 2013. Már. 15. (P), 02.59
- Egyetlen keresőmező;
- A lekérdezésedbe találatként kerül, ha a keresett cucc bármelyik megfelelő oszlopban szerepel ([Kategória] [Helyszín] [Időintervallum] [Szabadszöveg])


Ezt most nem értem. Úgy érted egyetlen szabad szöveges mező legyen, és amit oda beír, azt vessem össze az adatbázis kategória, helyszín, időintervallum oszlopaival? Mit értesz egyetlen keresőmező alatt?
12

Igen

Pepita · 2013. Már. 16. (Szo), 21.21
Egy keresőmező = a Júzer egyetlen input (text) - ba ír. Te pedig azt csinálsz ezzel a bejövő adattal, amit gondolsz. Esetleg az időt érdemes külön venni. (Akkor 2 input.)

city99 : majd keresek példát, ha lesz időm, nemrég egy letöltés-rangsorolást csináltam, ha megtalálom, hozom.
11

példa

city99 · 2013. Már. 15. (P), 23.47
- Természetesen a pontozást is a lekérdezésen belül valósítod meg, mert az alapján lesz az ORDER BY;


ennek a megvalositasra tudnál mutatni egy peldat?
14

Így helyből sajnos nem

Pepita · 2013. Már. 16. (Szo), 22.45
Megnéztem, hogy letöltés-rangsorolásnál mit csináltam, de sajnos az nem jó példa ide, mert nem listázáskor számolom a rangsort, hanem letöltés/feltöltés/stb. események után, a háttérben. Ott az a lényeg, hogy configolva van egy (max) pontszám a legtöbbet letöltött tartalomhoz és egy másik a legfrissebb (-en feltöltött) részére. Ezek alapján (amikor kell) kiszámolom a letöltésenként járó pontot és a legfrissebb / legrégibb alapján a "másodpercenkénti" pontszámot. Ezek birtokában már csak egy SQL-el végig-update-elem a táblát, beállítva a rank-et. (Persze a legfrissebbhez és a legtöbbet letöltötthöz kellenek korábbi SELECT-ek.)

De itt is valami hasonló kellene, úgy, hogy a rank oszlop teljes egészében számított. Ha nagyon egyszerűen akarod, akkor a def. rank 0, továbbá IF feltételekkel adsz hozzá pontokat, ha a keresett szó megvan az "A" vagy "B" vagy stb. oszlopban. Lehet úgy "súlyozni", hogy "A"-találatra pl. több pontot adsz, mint "B"-re. Az már keményebb dió, ha a többszöri előfordulást is pontozni akarod. A WHERE feltétel persze így is kell, hogy kiessenek azok a rekordok, amikben sehol sincs találat. ORDER BY értelemszerűen rank DESC.

Elképzelhetőnek tartom, hogy létezik erre telepíthető kereső is (amelyik közvetlenül az adatbázisban keres), de én még nem használtam ilyet (inkább megírtam), viszont ha van, lehet azt jobb befogni.
8

4. módszer: Egyetlen szabad

kuka · 2013. Már. 14. (Cs), 21.05
4. módszer:
Egyetlen szabad szöveg mező, amibe a keresési feltételeknek prefixük lehet:
  • „valami” – bárhol
  • „kategória:fontos” – csak a kategória mezőben
  • „Budapest helyszín:Debrecen” – „Budapest” bárhol és „Debrecen” csak a helyszín mezőben
Ilyen például a StackOverflow meg a GitHub keresője. Előnye a rugalmasság:
  • Könnyen bővíthető újabb mezőkkel design módosítás nélkül
  • Könnyen bővíthető logikai operátorokkal: „valami VAGY semmi”
  • Könnyen bővíthető relációs operátorokkal: „idő:>2013-01-01 ÉS idő:<2013-12-31”
Hátránya, hogy a látogatók részéről is igényel egy kis rugalmasságot…
9

Az ilyennél ügyelni kell rá,

Joó Ádám · 2013. Már. 15. (P), 02.05
Az ilyennél ügyelni kell rá, hogy jól és könnyen hozzáférhetően dokumentáld. Ugyanitt keresek hivatalos dokumentációt a Google-nél jelenleg érvényben lévő operátorokról.
13

Hát

Pepita · 2013. Már. 16. (Szo), 21.24
Igen, ez jó, viszont akiknek bonyolult a sok input, azoknak ez is.. :)
A példaoldalakat sem az "egyszerű látogatók" használják.