Properties.contains("Hell*orld");

Status
Nicht offen für weitere Antworten.
I

ixanos

Gast
Hallo zusammen

Ich habe ein Properties-Objekt welches mehrere einträge beinhaltet (za 3.000.000) und möchte in der Lage sein schnell zu testen ob gewisse Property-Keys eine vorgegebene Regular Expression oder eine Wildcard-Suche entsprechen. Da ist die contains-methode des Properties-Objektes nicht wirklich hilfreich, da diese den gesammten Key-checkt.

Hat jemand von euch eine Idee wie man sowass handhabt?

Gruss
Ioannis
 
T

tuxedo

Gast
Key-Iterator holen und jeden Key mit einem RegEx behandeln..
Wäre meine erste Idee.. Ob die gut ist, ist ne andere Frage.

- Alex
 
I

ixanos

Gast
das hilft nicht wirklich, da ich ja dann 3.000.000 sclüssel prüfen müsste.
 
S

SlaterB

Gast
man kann sich entsprechende Strukturen aufbauen, die 3 Mio. Strings z.B. in einen Baum ablegen der nach 1., 2., 3. Buchstaben verzweigt usw.,
oder für bestimmte markante Bestandteile im Voraus Teillisten/ Quer-Indexe anlegen,
(z.B. Buchstabenpaare, drillinge)

um aber ohne Einschränkung beliebige RegEx zu prüfen, z.B. .*huh(u|a)+.*,
da scheinen mir andere Wege als sequentiellen Durchlauf unmöglich

was nicht heißen muss, dass es sie nicht gibt ;)

siehe z.B.
http://lucene.apache.org/java/docs/
Apache Lucene is a high-performance, full-featured text search engine library written entirely in Java. It is a technology suitable for nearly any application that requires full-text search, especially cross-platform.
 
T

tuxedo

Gast
ixanos hat gesagt.:
das hilft nicht wirklich, da ich ja dann 3.000.000 sclüssel prüfen müsste.

Egal wie du's anstellst, 3Mio Schlüssel müssen so oder so durchsucht werden. Es gibt keine magische Blackbox auf der steht "Hier geschieht ein Wunder" und die möglichst keine Eingabe (also keine 3Mio Schlüssel, nur der Suchbegriff) hat und eine Ausgabe produziert, die auf deinen Suchbefehl passt.

Du musst nur eben effizient die Suche angehen.. Vorschläge hast du ja schon.

Auf der anderen Seite:

Wenn du dir Sorgen bzgl. der Effizienz machst: Ist es effizient Property-Objekte mit 3Mio Einträgen zu haben?

- Alex
 
S

SlaterB

Gast
also bei der normalen Hashmap muss man nur den Hashcode berechnen,
nicht 3 Mio. Strings durchforsten ;)

das geht allgemein schon wenn man sich nur genau genug festlegt,
was bei beliebigen RegEx eben umso schwerer wird,
das widerspricht sich, ist gegenläufig oder was man da so sagt
 
B

bygones

Gast
alex0801 hat gesagt.:
ixanos hat gesagt.:
das hilft nicht wirklich, da ich ja dann 3.000.000 sclüssel prüfen müsste.

Egal wie du's anstellst, 3Mio Schlüssel müssen so oder so durchsucht werden. Es gibt keine magische Blackbox auf der steht "Hier geschieht ein Wunder" und die möglichst keine Eingabe (also keine 3Mio Schlüssel, nur der Suchbegriff) hat und eine Ausgabe produziert, die auf deinen Suchbefehl passt.
nicht ganz - heuristische oder sonstig intelligente suchsysteme koennen schon anhand ihrer struktur den suchraum einengen, d.h. dass man eben nicht die 3Mio durchsuchen muss, sondern nur einen Teil davon....
 
T

tuxedo

Gast
Ja, jetzt reitet halt drauf rum ;-) Viele Wege führen nach Rom. Es gibt kurze und beschwerliche Wege über die Alpen (3Mio Strings abklappern), oder lange und schnelle Wege mit einem Raumschiff das unterwegs am Mars vorbei kommt (heuristische oder sonstige intelligente Suchsysteme).

Ich würd glaube ich, solche Daten gleich in ein System stecken, das sich schnell und effizient durchsuchen lässt (Datenbanksystem oder sowas in der Art) als ein Property.

Aber das hilft unserem Hilfesuchenden auch nicht weiter.

-Alex
 

byte

Top Contributor
@alex0801: Hör mal bitte auf den Threadersteller mit Deiner offensichtlichen Unwissenheit auf diesem Gebiet zu verwirren.
 

Wildcard

Top Contributor
Was spricht denn gegen Lucene? IMO genau das richtige für diese Datenmenge, zumal Wildcard Queries damit möglich sind.
 
S

SlaterB

Gast
ixanos hat sich seitdem noch nicht wieder gemeldet,
wahrscheinlich ist er/ sie so begeistert davon ;)
 
L

Lucene !

Gast
Hallo zusammen

Ich habe eigentlich Lucene schon benutzt und auch Kontakt zu Otis Gospodnetic aufgenommen um nachzuvoillziehen warum Lucene keine direkten Updates erlaubt. Wenn man mit Lucene die gleiche Datei 2 mal indiziert dann hat man duplikate. Das ist nicht gut für meine Anwendung. aus diesem Grund habe ich meine eigene "Lucene " suchmaschine gebaut. Diese garantiert dass es eben keine Duplikate gibt auch wenn das gleiche Dokument 2 oder X-mal indiziert wird.

Zur Zeit besteht das Problem dass ich noch keinen effektiven Weg gefunden habe um 3mil oder mehr auf wildcards zu suchen. Es müssen jetzt nicht unbedingt beliebige Regular Expressions überprüfbar sein. Es reicht auch einfache wildcards zu prüfen.

Man könnte z.B. folgende Suchquery absetzen:

+filename:readme.txt +contents:ixanos +location:"c:\mydocume*"

Meine Problem bei dieser query ist zur Zeit das letzte Teil : +location:"c:\mydocume*"


Man könnte antürlich die dokumente einschrenken durch die ersten 2 queries und dan wäre das alles nicht so tragisch. Dann wiederrum kann es aber sein dass im "c:\mydocume*"-Baum 100.000 Dateien drin sind oder 5 GB von Daten!!

Ein anderer Gedanke wäre anstatt Strings zu vergleichen eine von "String" abgeleitete Klasse zu bauen wo die
equals-Methode nur auf die länge des kleinsten Strings prüft:

Beispiel: Token = "c:\mydocume*"
Pfad zur Überüfen = "c:\mydocuments\test\"

Die equals prüft alle Strings bis zur Länge = 11 = "c:\mydocume".length() und gibt für alle true zurück.
Das obige bitte nur als "Brainstorming" betrachten, den ich weis noch nicht wie ixh das am effektivsten einbauen kann.


Gruss
Ioannis
 
I

ixanos

Gast
Obige Nachricht ist von mir (habe den Benutzernamen vergessen gehabt)
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
W Ein paar Fragen zu .properties und .css Allgemeine Java-Themen 6
S Test mit Werten aus der .properties Allgemeine Java-Themen 4
S class path resource [config.properties}] cannot be opened because it does not exist Allgemeine Java-Themen 4
ralfb1105 Classpath Directory fuer Properties File Allgemeine Java-Themen 2
K Properties serializable machen Allgemeine Java-Themen 6
KeVoZ_ Properties mit String auslesen Allgemeine Java-Themen 11
thet1983 Input/Output read properties file from classpath Allgemeine Java-Themen 3
Baldur BeanInfo für Properties-UI? Allgemeine Java-Themen 1
J Properties file ändern Allgemeine Java-Themen 12
B Objekte anhand von Properties file Allgemeine Java-Themen 41
W Input/Output Kann .properties Datei in kompilierter .jar nicht ändern Allgemeine Java-Themen 2
Thallius Speicherverhalten von Properties und mehreren Threads Allgemeine Java-Themen 5
T [log4j] Wie nutzt man log4j.properties? Allgemeine Java-Themen 7
I Best Practice Properties auslesen und splitten (RegExp?) Allgemeine Java-Themen 0
OnDemand Lesen aus Properties Allgemeine Java-Themen 7
D JAVA - Properties Datei mit Userdaten Allgemeine Java-Themen 7
M StripesResources.properties Allgemeine Java-Themen 2
GUI-Programmer Mehr als Properties Allgemeine Java-Themen 6
C Dynamisches und sortiertes Auslesen von Properties Allgemeine Java-Themen 2
Mr. Pink Erste Schritte Checkstyle.properties Allgemeine Java-Themen 3
B Properties File Liste Allgemeine Java-Themen 3
X Probleme mit meinem Properties Allgemeine Java-Themen 9
T Wahrscheinlich Problem mit log4j.properties Allgemeine Java-Themen 19
D Properties Datei, Eingabequelle Allgemeine Java-Themen 6
S Stilfrage bezüglich Beans mit Collection-Properties Allgemeine Java-Themen 2
C JAR, Pfad und Properties Allgemeine Java-Themen 17
R Properties Datei aus Applikationsverzeichnis lesen Allgemeine Java-Themen 5
T Properties Datei nicht jedes mal neu schreiben? Allgemeine Java-Themen 2
reibi Separator in java.util.Properties-Files Allgemeine Java-Themen 3
K Serialisierung in Properties-Datei möglich? Allgemeine Java-Themen 3
M Probleme mit UTF-8 und properties Allgemeine Java-Themen 6
C log4j.properties wird nicht verwendet?? Allgemeine Java-Themen 3
T Properties Datei nicht löschbar Allgemeine Java-Themen 8
S Properties binden Allgemeine Java-Themen 2
nrg Knotenpunkte in Properties Allgemeine Java-Themen 9
U Properties in Jar Files Allgemeine Java-Themen 3
S Properties-Dateien anwenden Allgemeine Java-Themen 8
G Alternative zu .properties Dateien Allgemeine Java-Themen 20
nabla Gutes einlesen von Konfigurationsdateien (Properties?) Allgemeine Java-Themen 11
E Properties +SerialPort Allgemeine Java-Themen 9
H Java Properties Allgemeine Java-Themen 5
A kann nicht auf properties außerhalb jar zugreifen Allgemeine Java-Themen 3
T CP Problem: Webstart + Logging properties file + eigener Handler Allgemeine Java-Themen 7
Y Properties verwalten! Allgemeine Java-Themen 3
G externe Properties datei aus Jar File heraus lesen Allgemeine Java-Themen 12
M Databinding von Object zu properties-Datei Allgemeine Java-Themen 10
F Properties verschlüsselt speichern Allgemeine Java-Themen 5
W Properties-Klasse: mehrere Parameter-Belegungen übergeben? Allgemeine Java-Themen 2
K settings.properties in den src-ordner schreiben Allgemeine Java-Themen 2
J Wo werden die System properties gespeichert Allgemeine Java-Themen 12
DEvent log4j, commons logging, log4j.properties and co Allgemeine Java-Themen 12
D Ordner mit *.properties in classpath ? Allgemeine Java-Themen 5
P Encoding-Probleme bei Properties-Dateien Allgemeine Java-Themen 5
A Hardware Properties auslesen Allgemeine Java-Themen 10
P Properties liest nicht alles aus Datei aus Allgemeine Java-Themen 17
J Properties sortieren Allgemeine Java-Themen 6
G Probleme beim Sichern von Properties Allgemeine Java-Themen 2
N Java Properties Allgemeine Java-Themen 14
L "globale" properties Datei Allgemeine Java-Themen 4
V Properties Key als String mit =? Allgemeine Java-Themen 3
G Beans und transiente Properties Allgemeine Java-Themen 4
MQue properties- Datei Allgemeine Java-Themen 2
M Pattern aus Properties Allgemeine Java-Themen 3
R Problem bei schreiben von properties Allgemeine Java-Themen 6
R Properties Datei ändern Allgemeine Java-Themen 4
P log4j: Übersicht der Properties Allgemeine Java-Themen 5
R Properties dateien in Jar beschreiben Allgemeine Java-Themen 2
L properties auslesen funktioniert nicht(java.util.Properties) Allgemeine Java-Themen 3
G properties datei aktualisieren Allgemeine Java-Themen 4
J Properties editieren. Allgemeine Java-Themen 10
V log4j.properties wird in der jar Datei nicht gefunden? Allgemeine Java-Themen 2
V INI Files, Properties etc. Allgemeine Java-Themen 7
K Cast von Properties und Hashmap Allgemeine Java-Themen 9
A Mehrzeiligen Eintrag in Ressourcebundle (.properties-Datei) Allgemeine Java-Themen 8
B Wohin mit log4j.properties Allgemeine Java-Themen 2
B MannoMann Properties Allgemeine Java-Themen 12
G Properties Datei verschlüsseln. WIE? Allgemeine Java-Themen 6
G Einzelne Keys aus Properties-Datei auslesen Allgemeine Java-Themen 4
S Zugriff auf Properties-Datei Allgemeine Java-Themen 10
J ResourceBundle / properties-datei während der Laufzeit verän Allgemeine Java-Themen 6
I Collection - contains-Methode überschreiben (anonyme innere Klasse) Allgemeine Java-Themen 4
G Override String.contains Allgemeine Java-Themen 2
T Collections TreeSet.contains ruft nicht .equals? Allgemeine Java-Themen 4
H ArrayList.contains() Allgemeine Java-Themen 2
C Komisches Verhalten zwischen Set und List bei contains Allgemeine Java-Themen 6
B Arraylist.contains(Klasse) möglich? Allgemeine Java-Themen 19
K Collection.contains()/retainAll() mit Referenzgleichheit statt equals()? Allgemeine Java-Themen 2
1 String mit contains vergleichen (ignore case) Allgemeine Java-Themen 2
T Set.contains() auch false wenn value == null? Allgemeine Java-Themen 4
J Array[][] contains Array[][] ? Allgemeine Java-Themen 4
G drawPolygon() vs. contains() -> komisch! Allgemeine Java-Themen 14
N contains(.) liefert nicht erwartetes Ergebnis Allgemeine Java-Themen 3
B String.contains() --- Java1.3 Allgemeine Java-Themen 2

Ähnliche Java Themen


Oben