benutzte ich dieses einfache Daten-Set Ihren Fall zu versuchen:
CREATE CLASS Companies EXTENDS V
CREATE PROPERTY Companies.Name STRING
CREATE INDEX Companies.Name ON Companies(Name) NOTUNIQUE_HASH_INDEX
CREATE VERTEX Companies SET Name = 'Company 1'
CREATE VERTEX Companies SET Name = 'Company 2'
CREATE VERTEX Companies SET Name = 'Company 3'
CREATE VERTEX Companies SET Name = 'Company 4'
CREATE VERTEX Companies SET Name = 'Company 5'
CREATE VERTEX Companies SET Name = 'Company 6'
1. Suche Eckpunkte durch einen definierten Algorithmus:
die Ergebnisse abzurufen Sie suchen, Sie implementieren können, Abfrage mit OrientSQL methods wie .toLowerCase()
und LIKE
Operator. ZB:
SELECT Name FROM Companies WHERE Name.toLowerCase() LIKE 'comp%1'
----+------+---------
# |@CLASS|Name
----+------+---------
0 |null |Company 1
----+------+---------
Sie können auch eine Funktion enthalten, Ihre Abfrage erstellen:

2. Über den Index Wahl, ein HASH_INDEX
(I verwendet ein NOTUNIQUE_HASH_INDEX
) wäre besser, weil es ist praktischer auf großen Zahlen (wie in Ihrem Fall) und es hat viele Vorteile wie erklärt here
EDITED
ich diese Funktion erstellt ein Beispiel (inputName
Parameter ist die Firma Name
Sie suchen) geben:

Sobald die Funktion erstellt wurde, können Sie es durch anrufen mit dem OSQL:
STUDIO:

KONSOLE:
SELECT EXPAND(myFunction3('company1'))
----+-----+---------+---------
# |@RID |@CLASS |Name
----+-----+---------+---------
0 |#12:0|Companies|Company 1
----+-----+---------+---------
1 item(s) found. Query executed in 0.015 sec(s).
Über die Leistung, ich weiß nicht, die Komplexität des Datensatzes (z Anzahl und Art der Felder) und es ist schwer zu sagen. Sie könnten diese Beispiele als Ausgangspunkt für die Erstellung vieler und komplexerer benutzerdefinierter Funktionen verwenden.
Ich hoffe, es hilft.
Danke hilft, aber ich habe mehr ausgeklügelten Algorithmus für die Suche erstellen (nicht nur in Kleinbuchstaben umwandeln, sondern auch Räume entfernen und einige spezielle Symbole und Sätze). Kann ich solche Dinge tun? –
Hallo @Alex, Antwort bearbeitet. – LucaS
Hallo @Lucas, danke, aber das Problem ist, dass ich genug Datensätze in der Klasse Unternehmen (ca. 21+ Millionen) habe. Die Abfrage (wählen Sie aus Firmen) funktioniert nicht für mich wegen Speichermangel ("java.lang.OutOfMemoryError: Java-Heap-Speicher") und es wird erwartet. Dieser Fall, fragte ich, kann ich Funktionsindex oder etwas Ähnliches auf meiner Klasse Unternehmen hinzufügen, um darin durch meinen Algorithmus (das Bilden von Kleinbuchstaben und das Entfernen von Leerzeichen) schnell genug zu suchen? –