Wenn du auch ein Rating usw willst; geht wohl nichts �ber eine Hash Tabelle (Temp Tabelle)
mfG > -----Original Message----- > From: Azubi IFK LabTec [mailto:[EMAIL PROTECTED]] > Sent: Dienstag, 2. April 2002 13:12 > To: ASP Datenbankprogrammierung > Subject: [aspdedatabase] RE: AW: RE: AW: RE: AW: suchengine > > > Mal einen kleinen Denkansatz... > > Es wird ein SQL Query generiert... > > Im moment werden noch s�mmtliche + - AND OR NOT ... durch ein > OR ersetzt... > > Liesse sich jedoch gleich implementieren. > > M�sste nur dies anderst schreiben: > while InStr(querytext," ") <> 0 > Wert = Left(querytext,InStr(querytext," ")-1) > if Wert <> "" then wherestr = wherestr & "(keywords + > description + titel > Like '%"&Wert&"%') OR" > querytext = > Right(querytext,len(querytext)-InStr(querytext," ")) > wend > > > L�sst sich sicher auch gut in SP's realisieren. > > MfG > > Christian Thuer > > querysql = "select abspath, titel, description, keywords from > dateien where" > > querytext = replace (querytext, "'", """") > querytext = replace (querytext, "&", "+") > querytext = replace (querytext, " AND ", "+") > querytext = replace (querytext, " and ", "+") > querytext = replace (querytext, " OR ", "|") > querytext = replace (querytext, " or ", "|") > querytext = replace (querytext, "�", "|") > querytext = replace (querytext, " Not ", " ! ") > querytext = replace (querytext, "*", "") > querytext = replace (querytext, ".", "") > if ((inStr (querytext, "+") = 0) and (inStr (querytext, "|") > = 0) and (inStr > (querytext, " ! ") = 0)) then > querytext = replace (querytext, " ", " ") > querytext = replace (querytext, " ", " ") > if instr(querytext, """")=0 then > printHeader > while InStr(querytext," ") <> 0 > Wert = Left(querytext,InStr(querytext," ")-1) > if Wert <> "" then wherestr = wherestr & "(keywords + > description + titel > Like '%"&Wert&"%') OR" > querytext = > Right(querytext,len(querytext)-InStr(querytext," ")) > wend > wherestr = wherestr & "(keywords + description + titel Like > '%"&querytext&"%')" > executeSQL > printFeet > else > querytext = replace (querytext, """", "") > printHeader > wherestr = "(keywords like '%"&querytext&"%') and (description like > '%"&querytext&"%') and (titel like '%"&querytext&"%')" > executeSQL > wherestr = "((keywords like '%"&querytext&"%') and > ((description like > '%"&querytext&"%') xor (titel like '%"&querytext&"%'))) xor > ((titel like > '%"&querytext&"%') and (description like '%"&querytext&"%') > and not(keywords > like '%"&querytext&"%'))" > executeSQL > wherestr = "(((titel like '%"&querytext&"%') xor (description like > '%"&querytext&"%')) and not (keywords like '%"&querytext&"%')) xor > ((keywords like '%"&querytext&"%') and not ((titel like > '%"&querytext&"%') > OR (description like '%"&querytext&"%')))" > executeSQL > printFeet > end if > else > 'Complexe Query > querytext = replace (querytext, "+", " ") > querytext = replace (querytext, "|", " ") > querytext = replace (querytext, " ! ", " ") > querytext = replace (querytext, " ", " ") > querytext = replace (querytext, " ", " ") > printHeader > while InStr(querytext," ") <> 0 > Wert = Left(querytext,InStr(querytext," ")-1) > if Wert <> "" then wherestr = wherestr & "(keywords + > description + titel > Like '%"&Wert&"%') OR" > querytext = > Right(querytext,len(querytext)-InStr(querytext," ")) > wend > wherestr = wherestr & "(keywords + description + titel Like > '%"&querytext&"%')" > executeSQL > printFeet > end if > %> > > > -----Original Message----- > > From: Andreas Roth [mailto:[EMAIL PROTECTED]] > > Sent: Dienstag, 2. April 2002 12:55 > > To: ASP Datenbankprogrammierung > > Subject: [aspdedatabase] AW: RE: AW: RE: AW: suchengine > > > > > > Textmails, Jan, Textmails! > > > > Also, wir haben > > #temp > > ------ > > SearchPartID > > ResultsID > > > > jetzt wir einzeln nach jaguar (SearchPartID = 1), puma > > (SearchPartID = 2) > > und animal (SearchPartID = 3) gefragt. > > > > Jetzt haben wir in #temp ein ResultsID also evt. mehrfach > > vorliegen: Zum > > Beispiel weil der Jaguar als Animal eingetragen war (sagen wir als > > ResultsID= 1. Auch die Marke befindet sich darin als ResultsID = 2 > > > > Dann sieht #temp vielleicht so aus: > > (Suche nach Jaguar und nicht Animal) > > SearchPartID ResultsID > > 1 1 Jaguar als Suchergebniss von "Jaguar" > > 1 2 Jaguar als Suchergebniss von "Animal" > > 2 1 anderer Jaguar als > > Suchergebniss von "Jaguar" > > > > Wenn du nun fragst: > > SELECT ResultsID FROM #Temp WHERE ResultsID IN (SELECT > > ResultsID FROM #Temp > > WHERE SearchPartID=1) AND NOT IN (SELECT ResultsID FROM #Temp WHERE > > SearchPartID=2) > > > > wird er dir als Ergebniss nur den dritten Satz zur�ckgeben. > > > > Ich pers�nlich bastle solche Suchstrings immer im > > Datenbankclient zusammen. > > Aber f�r einen ge�bten SP Programierer istr es sicher kein > > Problem, dass > > komplett in einer SP zu kapseln. > > > > Gru�, Andreas, http://www.drhirn.com/EuphoriasChild > > > > -----Urspr�ngliche Nachricht----- > > Von: Jan Mlekusch [mailto:[EMAIL PROTECTED]] > > Gesendet: Dienstag, 2. April 2002 12:46 > > An: ASP Datenbankprogrammierung > > Betreff: [aspdedatabase] RE: AW: RE: AW: suchengine > > > > > > hallo > > danke > > wenn jetzt zb ein user in der suchmaske folgendes eingibt: > > "jaguar OR puma" NOT animal > > dies ist die Frage. Wie soll ich das abfangen, dass nun in > > allen Feldern > > nach 'jaguar' oder 'puma' gesucht wird, jedoch nicht nach 'animal' > > weisst Du was ich meine? > > Jan > > -----Original Message----- > > From: Andreas Roth [mailto:[EMAIL PROTECTED]] > > Sent: Tuesday, April 02, 2002 12:29 PM > > To: ASP Datenbankprogrammierung > > Subject: [aspdedatabase] AW: RE: AW: suchengine > > > > > > > > z.B.: > > WHERE Ergebniss IN() AND Ergebniss IN () OR Ergebniss NOT IN () > > Geht also alles, auch verschachteln. > > Gru�, Andreas, http://www.drhirn.com/EuphoriasChild > > -----Urspr�ngliche Nachricht----- > > Von: Jan Mlekusch [mailto:[EMAIL PROTECTED]] > > Gesendet: Dienstag, 2. April 2002 12:26 > > An: ASP Datenbankprogrammierung > > Betreff: [aspdedatabase] RE: AW: suchengine > > > > > > hallo > > ja, danke genau so mache ich es jetzt auch. Frage alle tabellen ab, > > speichere deren id in eine #Tabelle und lese am schluss die > restlichen > > felder aus. > > die frage ist wie implementiere ich am einfachsten funktionen > > wie AND OR NOT > > etc. > > Jan > > PS: ich sende textmails > > -----Original Message----- > > From: Andreas Roth [mailto:[EMAIL PROTECTED]] > > Sent: Tuesday, April 02, 2002 12:01 PM > > To: ASP Datenbankprogrammierung > > Subject: [aspdedatabase] AW: suchengine > > > > > > Hallo Jan, > > bitte sende der Liste nur Text eMails, > > Die L�sung deines Problems k�nnte recht einfach sein: > > Du fragst die Teile deiner Suche jeweils einzeln ab und legst > > sie in einer > > tempor�ren(kann natrlich auch eine Statische sein) Tabelle > > ein, die zB. so > > aufgebaut ist: > > tempResults > > ------------ > > SearchID (wenn es eine statische ist, musst du die einzelne Suchen > > voneinander unterscheiden k�nnen) > > PartID (einen Teil der Aktuellen Suche zb: von dir vergebenb > > Suchbegriff > > "Stored & Procedure" = "Stored"->1 "Procedure"->2) > > ResultsIDs (Identifizierung des Ergebnisses) > > Am Schlus l�sst du eine Abfrage �ber diese Tabelle laufen: > > SELECT ResultsIDs FROM tempResults WHERE ResultsIDs IN > > (SELECT ResultsIDs > > FROM tempResults WHERE PartID= 1) AND ResultsIDs IN(SELECT > > ResultsIDs FROM > > tempResults WHERE PartID= 1) > > oder eben statt AND OR usw. > > Gruss, Andreas > > -----Urspr�ngliche Nachricht----- > > Von: Jan Mlekusch [mailto:[EMAIL PROTECTED]] > > Gesendet: Dienstag, 2. April 2002 11:44 > > An: ASP Datenbankprogrammierung > > Betreff: [aspdedatabase] suchengine > > > > > > Hi > > Folgende Frage: > > Habe eine Website auf welcher ich eine Suchengine platziert > > habe, mit der > > ich Werte aus einer SQL DB heraushole. > > Es sind mehrere Attribute aus mehreren Entit�ten, welche ich > > aus der DB > > hole, sodass das ganze sehr komplex wird. > > Bis jetzt habe ich das in einer stored Procedure gel�st, > > welche aber sehr > > umfangreich geworden ist. (wenn jmd die sp haben m�chte, kann > > ich gerne > > Mailen, ist aber zu lang f�r dieses Posting, nur 50k erlaubt) > > Nun, die Logik der Suchengine (SE) habe ich mir > > selbstgestrickt. Nun m�chte > > ich diese SE ausbauen, sodass mit AND OR etc. Ist die > > verwendung des MS > > Index Server Express eine M�glichkeit? Oder soll man besser > > �ber/mit XML > > suchen (habe keine Ahnung von, aber wenns der Sache dient!). > > Fr�her hatte > > ich in einem ASP Script gesucht, welches immer auf den SQL > > zugegriffen hat, > > was allerdings performance Probleme verursacht hat (verst�ndlich). > > Hat jmd einen guten Ansatz, den ich weiterverfolgen k�nnte? > > besten Dank > > Jan Mlekusch > > Software Engineer > > ---------------------- > > antax ag > > Heimstrasse 46 > > CH-8953 Dietikon > > Pho: +41 1 745 67 00 > > Fax: +41 1 745 67 21 > > Mob: +41 79 757 40 17 > > ---------------------- > > mail: [EMAIL PROTECTED] > > web: www.antax.ch > > > > > > > > ---------------------- > > Diese E-Mail enth�lt vertrauliche und/oder rechtlich gesch�tzte > > Informationen. Wenn Sie nicht der richtige Adressat sind oder > > diese E-Mail > > irrt�mlich erhalten haben, informieren Sie bitte sofort den > > Absender und > > vernichten Sie diese Mail. Das unerlaubte Kopieren sowie > die unbefugte > > Weitergabe dieser Mail ist nicht gestattet. > > This e-mail may contain confidential and/or privileged > > information. If you > > are not the intended recipient (or have received this > e-mail in error) > > please notify the sender immediately and destroy this e-mail. Any > > unauthorised copying, disclosure or distribution of the > > material in this > > e-mail is strictly forbidden. > > | [aspdedatabase] als [EMAIL PROTECTED] subscribed | > > http://www.aspgerman.com/archiv/aspdedatabase/ = Listenarchiv > > | Sie k�nnen > > sich unter folgender URL an- und abmelden: | > > http://www.aspgerman.com/aspgerman/listen/anmelden/aspdedatabase.asp > > > > > > | [aspdedatabase] als [EMAIL PROTECTED] subscribed > > | http://www.aspgerman.com/archiv/aspdedatabase/ = Listenarchiv > > | Sie k�nnen sich unter folgender URL an- und abmelden: > > | http://www.aspgerman.com/aspgerman/listen/anmelden/aspdedatabase.asp > | [aspdedatabase] als [EMAIL PROTECTED] subscribed | > http://www.aspgerman.com/archiv/aspdedatabase/ = Listenarchiv > | Sie k�nnen > sich unter folgender URL an- und abmelden: | > http://www.aspgerman.com/aspgerman/listen/anmelden/aspdedatabase.asp > > > | [aspdedatabase] als [EMAIL PROTECTED] subscribed > | http://www.aspgerman.com/archiv/aspdedatabase/ = Listenarchiv > | Sie k�nnen sich unter folgender URL an- und abmelden: > | http://www.aspgerman.com/aspgerman/listen/anmelden/aspdedatabase.asp > | [aspdedatabase] als [EMAIL PROTECTED] subscribed | > http://www.aspgerman.com/archiv/aspdedatabase/ = Listenarchiv > | Sie k�nnen > sich unter folgender URL an- und abmelden: | > http://www.aspgerman.com/aspgerman/listen/anmelden/aspdedatabase.asp > > > | [aspdedatabase] als [EMAIL PROTECTED] subscribed > | http://www.aspgerman.com/archiv/aspdedatabase/ = Listenarchiv > | Sie k�nnen sich unter folgender URL an- und abmelden: > | http://www.aspgerman.com/aspgerman/listen/anmelden/aspdedatabase.asp > | [aspdedatabase] als [EMAIL PROTECTED] subscribed | http://www.aspgerman.com/archiv/aspdedatabase/ = Listenarchiv | Sie k�nnen sich unter folgender URL an- und abmelden: | http://www.aspgerman.com/aspgerman/listen/anmelden/aspdedatabase.asp | [aspdedatabase] als [email protected] subscribed | http://www.aspgerman.com/archiv/aspdedatabase/ = Listenarchiv | Sie k�nnen sich unter folgender URL an- und abmelden: | http://www.aspgerman.com/aspgerman/listen/anmelden/aspdedatabase.asp
