ERLEDIGT
NEIN
NEIN
ANTWORTEN
2
2
ZUGRIFFE
938
938
EMPFEHLEN
-
01.06.07 10:34 #1
- Registriert seit
- Sep 2004
- Beiträge
- 200
Hi,
meine Frage bezieht sich auf auf eines Strings um eine Datenbank zu durchsuchen.
Bisher habe ich folgendes gemacht:
Ich habe den in die Textbox eingegebenen Wert mit eine StringTokenizer zerlegt, und auf vorzeichen wie "+" und "-" geprüft.
Nun stehe ich irgendwie an, weil ich auch gern hätte, das wenn jemand ein Wort unter Anführungszeichen stellt, das dieses Wort nicht vom StringTokenizer zerlegt wird.
Ich hätte schon versucht mit "String delim" nur bei Leerzeichen zu teilen, aber zwischen den Wörtern, wenn sie unter Anführungsstrichen stehen ist auch ein leerzeichen.
Ich würde gern wissen, wie man soetwas richtig aufbaut, zb. wie die Forensuche hier.
Kann mir jemand ein paar Codeschnippsel oder einen Link zu einer fertigen Lösung geben? Oder auch anders irgendwie helfen? Danke!MFG SeeSharpNewBee
-
01.06.07 11:52 #2
- Registriert seit
- Jun 2002
- Ort
- Saarbrücken (Saarland)
- Beiträge
- 9.886
- Blog-Einträge
- 29
Hallo,
Code java:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
/** * */ package de.tutorials; /** * @author Tom * */ public class SearchTokenSplitter { /** * @param args */ public static void main(String[] args) { String qry ="ABC DEF \"XXX YYY\" 4711"; qry = qry.replaceAll("(?<!\"[^\\s])\\s(?![^\\s]+\")", "%"); qry = "%" + qry.replace("\"","") + "%"; System.out.println(qry); } }
Ausgabe:
Code :1
%ABC%DEF%XXX YYY%4711%
Wenn du nun noch mit - Arbeiten möchtest um bestimmte Suchworte in den Ergebnissen auszuschließen musst do wohl noch einmal über den Query String drüber gehen und dann die Wörter die nicht vorkommen sollen aus der normalen Query rausnehmen und in eine Negativ-Liste legen.
Dann machst du in der Abfrage...
Negativ liste wäre als Beispiel:
-bubu -gaga
Code sql:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
SELECT * FROM DATA WHERE (content LIKE '%ABC%DEF%XXX YYY%4711%' --exact match OR content LIKE '%ABC%' -- partial match OR content LIKE '%DEF%' -- partial match OR content LIKE '%XXX YYY%' -- partial match OR content LIKE '%4711%' ) -- partial match AND (content NOT LIKE '%bubu%gaga%' OR content NOT LIKE '%bubu%' OR content NOT LIKE '%gaga%' )
Anstatt sowas selber zu bauen würde ich hier eher Lucene verwenden:
http://lucene.apache.org/java/docs/
Die haben dort fix und fertige Module für sehr ausgefeilte Textsuche in Textdateien und Datenbanken....
Gruß TomJava rocks!
How to become a good Java Programmer?
Does IT in Java and .Net
The only valid measurement of code quality: WTFs / minute
Blog
Xing
Twitter
-
01.06.07 12:41 #3
- Registriert seit
- Sep 2004
- Beiträge
- 200
Danke für die Antwort, ich würde gern deine Lesezeichenliste sehen...

Ganz klar komme ich trotzdem noch nicht, ich habe die .jar datei jetzt heruntergeladen, und hab versucht das zu testen.
Ich hab die Doku durchgelesen, und bin auf folgendes gekommen:
OK, "use an SQL 'SELECT'", aber da kann ich das dann auch wieder selber machen und brauch Lucene nicht wirklich oder?How can I use Lucene to index a database?
Connect to the database using JDBC and use an SQL "SELECT" statement to query the database. Then create one Lucene Document object per row and add it to the index. You will probably want to store the ID column so you can later access the matching items. For other (text) columns it might make more sense to only index (not store) them, as the original data is still available in your database.
Oder soll ich nur die Methode "queryParser" verwenden um meinen SQL String zu bauen?
... bitte hilfe...
//EDIT:
Jetzt hab ich verstanden wie das Ding arbeiet, jedoch weiß ich immer noch nicht wie ich einen Such String bauen kann, da hab ich noch nichts gefunden.
Sobald alles fertig ist, poste ich ein komplettes Beispiel!Geändert von SeeSharpNewBee (01.06.07 um 15:18 Uhr)
MFG SeeSharpNewBee
Ähnliche Themen
-
Datenbank durchsuchen
Von Hanseatic im Forum .NET DatenverwaltungAntworten: 6Letzter Beitrag: 18.02.08, 20:14 -
Datenbank durchsuchen!
Von proloser im Forum Relationale DatenbanksystemeAntworten: 4Letzter Beitrag: 15.12.06, 22:22 -
datenbank durchsuchen
Von uzge77 im Forum PHPAntworten: 5Letzter Beitrag: 25.07.05, 15:56 -
Datenbank durchsuchen
Von jokaz11 im Forum PHPAntworten: 2Letzter Beitrag: 28.05.05, 18:52 -
Datenbank durchsuchen ^^
Von m4nueL im Forum PHPAntworten: 8Letzter Beitrag: 02.09.02, 15:18





Zitieren

Login





