Kom ihåg mig?
Home Menu

Menu


Lagom avancerad sökfunktion i e-butik

Ämnesverktyg Visningsalternativ
Oläst 2007-06-11, 10:05 #1
Gustavs avatar
Gustav Gustav är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Jul 2005
Inlägg: 3 171
Gustav Gustav är inte uppkopplad
Klarade millennium-buggen
Gustavs avatar
 
Reg.datum: Jul 2005
Inlägg: 3 171
Jag behöver en sökfunktion för produktsökning i en e-butik. I shoppen finns idag en väldigt enkel sökfunktion som bara letar efter det exakta sökordet i databasen och sen presenterar träffarna för användaren.

Jag letar både efter färdiga script, eller bara instruktioner för hur man bör definiera algoritmerna till en sökfunktion. Scriptet eller guiden får gärna kosta pengar, men det måste vara rimliga belopp. Användningsområdet är som sagt produktsökning i en webbshop.

Om någon kan tipsa om script så bör det vara med öppen källkod eller där man på annat vis har möjlighet att tweaká sökresultaten efter eget önskemål.
Gustav är inte uppkopplad   Svara med citatSvara med citat
Oläst 2007-06-11, 10:20 #2
Magnus_A Magnus_A är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: May 2006
Inlägg: 2 604
Magnus_A Magnus_A är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: May 2006
Inlägg: 2 604
Ere mysql bör du ta en titt på denna länk: Full-text search in Mysql
Magnus_A är inte uppkopplad   Svara med citatSvara med citat
Oläst 2007-06-12, 00:29 #3
teamwebs avatar
teamweb teamweb är inte uppkopplad
Medlem
 
Reg.datum: Apr 2006
Inlägg: 100
teamweb teamweb är inte uppkopplad
Medlem
teamwebs avatar
 
Reg.datum: Apr 2006
Inlägg: 100
Exempel på exakt sökning;
$sql = "SELECT * FROM webbshop WHERE field_1 = '$search' ";
Exempel på ett wildcard
$sql = "SELECT * FROM webbshop WHERE field_1 LIKE '$search%' ";

Har du direktaccess till koden kan du rätt enkelt ändra till wildcard (%)-tecken själv. Men glöm inte "LIKE" istället för "="-tecknet. Har du en stor databas bör du kolla upp dina indexeringar om du inför "LIKE".

Som ett exempel kan jag nämna att vi har en kund som har ca 55 000 varor i webbshopen och wildcard både före och efter sökordet men man tror att han har 100 varor så snabbt går det. Tyvärr är nackdelen med indexeringar UPDATE & INSERT går lååångsamt men å andra sidan gör inte kunden det oftare än 2 ggr per år.
teamweb är inte uppkopplad   Svara med citatSvara med citat
Oläst 2007-06-12, 00:36 #4
WizKid WizKid är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Apr 2004
Inlägg: 618
WizKid WizKid är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Apr 2004
Inlägg: 618
Har MySQL ändrat något på sistone? Jag vet att innan så kunde MySQL inte använda index vid LIKE sökningar med % i början. Det är väl därför Full-Text sökning finns i MySQL.
WizKid är inte uppkopplad   Svara med citatSvara med citat
Oläst 2007-06-12, 00:45 #5
teamwebs avatar
teamweb teamweb är inte uppkopplad
Medlem
 
Reg.datum: Apr 2006
Inlägg: 100
teamweb teamweb är inte uppkopplad
Medlem
teamwebs avatar
 
Reg.datum: Apr 2006
Inlägg: 100
Vilken motor tänkte du på? Vi kör med InnoDB. Så det var ju rätt så relevant information för Gustav alltså. Ändra från MyIsam till InnoDB alt kör med mysql.com (Wizkid's länk ovan) förslag.

Anledningen till att vi kör med InnoDB är att man kan låsa (LOCK) rader. Se gärna http://dev.mysql.com/doc/refman/4.1/...ock-modes.html
men jag ser också att dom har skrivit en lång "låt bli" lista för att köra InnoDB.
http://dev.mysql.com/doc/refman/4.1/...trictions.html

Hursomhelst så visar empiriska testar att vi får prestandavinster med InnoDB, självklart vill MySql att man använder MyIsam helst men allt är igentligen bara kompromisser mellan olika saker.

InnoDB: http://www.innodb.com/ & en benchmark (men testa själv också) http://www.innodb.com/innodb/benchmarks
teamweb är inte uppkopplad   Svara med citatSvara med citat
Oläst 2007-06-12, 01:38 #6
Gustavs avatar
Gustav Gustav är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Jul 2005
Inlägg: 3 171
Gustav Gustav är inte uppkopplad
Klarade millennium-buggen
Gustavs avatar
 
Reg.datum: Jul 2005
Inlägg: 3 171
Tack för svaren. Jag är inte själv programmerare, så mycket av det ni skriver är rena grekiskan för mig. Jag ska dock låta någon som kan titta på det

Jag kanske uttryckte mig förmodligen lite oklart, men det är inte koden vi behöver hjälp med. Det är hur algoritmerna ska definieras för att ge bra och vettiga sökresultat. Dvs vad bör ge en träff och vad bör inte göra det.

Exempel 1:
Söker någon på batterier i shoppen så får man idag upp en hel drös irrelevanta träffar. Nästan alla produktbeskrivningar innehåller ordet batterier, eftersom beskrivningen anger vad man behöver för batterier till produkten. Det här skulle man t ex kunna lösa genom att sökmotorn gör ett urval och bara presenterar produkter från den produktkategorin där ordet batterier är vanligast förkommande. Resultatet skulle bli att man bara fick upp batterier och inte andra produkter.

Exempel 2:
Vissa böjningar av ord och eventuella felstavningar ger idag inte de träffarna som de ska göra. Lösningen kan t ex vara att om bokstavsföljden stämmer till 85 % så ger det ändå en träff.

Exempel 3:
Många ord har synonymer. Söker någon på en synonym så får personen inte upp några relevanta träffar. Lösningen skulle vara att man förser sökmotor med ett mindre synonymlexikon.

Problemen är många och de flesta har jag förmodligen inte ens tänkt på i dagsläget, än mindre har jag några riktiga lösning.

Det här var bara ett exempel. Jag sitter inte inne med lösningarna och det kan säkert vara ganska komplicerat bitvis, men det var därför som jag undrade om någon kände till en guide eller en redan befintlig kod som man kan modifiera . Att sitta och lista ut allt det här själv blir lätt kämpigt. Särskilt som någon annan förmodligen redan har löst problemen.
Gustav är inte uppkopplad   Svara med citatSvara med citat
Oläst 2007-06-12, 04:42 #7
koalas avatar
koala koala är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: Sep 2004
Inlägg: 1 154
koala koala är inte uppkopplad
Har WN som tidsfördriv
koalas avatar
 
Reg.datum: Sep 2004
Inlägg: 1 154
På symfony-project.com finns en ganska bra guide som visar hur man kan bygga en simpel sökmotor. Där kan du säkert lära dig några tekniker för det du söker: Day 21
koala är inte uppkopplad   Svara med citatSvara med citat
Oläst 2007-06-12, 09:59 #8
Gustavs avatar
Gustav Gustav är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Jul 2005
Inlägg: 3 171
Gustav Gustav är inte uppkopplad
Klarade millennium-buggen
Gustavs avatar
 
Reg.datum: Jul 2005
Inlägg: 3 171
Citat:
Originally posted by koala@Jun 12 2007, 04:42
På symfony-project.com finns en ganska bra guide som visar hur man kan bygga en simpel sökmotor. Där kan du säkert lära dig några tekniker för det du söker: Day 21
Tack. Jag fick genast några bra infallsvinklar där. Fler tips mottages tacksamt. Precis som i koalas exempel så behöver det inte vara sökmotorer anpassade för just e-handel. Det blir relativt lätt att i efterhand konvertera en vanlig sökmotor till att passa en shop.
Gustav är inte uppkopplad   Svara med citatSvara med citat
Svara


Aktiva användare som för närvarande tittar på det här ämnet: 1 (0 medlemmar och 1 gäster)
 

Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av

Forumhopp


Alla tider är GMT +2. Klockan är nu 14:08.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson
 
Copyright © 2017