Ich habe eine Spalte mit durch Komma getrennten Zahlen wie '2323,23323,23323'. Die Tabelle hat 20 Millionen Datensätze und dauert etwa 37 Sekunden, um ein Ergebnis basierend auf einem ähnlichen Keyword wie unten anzuzeigen.Wie man eine kommaseparierte Textspalte mit Oracle Text indiziert
SELECT count(*) from testtable WHERE node_sequence like '%324%';
Ich habe versucht, die Abfrage der Zeit Text mithilfe von Oracle zu verbessern, indem die unter Index erstellen
CREATE INDEX node_sequence_index ON testtable(node_sequence) INDEXTYPE IS ctxsys.context;
exec ctx_ddl.sync_index('node_sequence_index');
Aber das unten stehende Abfrage funktioniert nur mit Worten:
SELECT count(*) from testtable WHERE CONTAINS(node_sequence, '324') > 0;
von bei der Suche Dokumentation, wird die Indizierung nach Wörtern (getrennt durch Leerzeichen) Gibt es eine Möglichkeit, mit Komma zu Tokenisieren? Ich konnte keine Probe finden, wo dies möglich ist. Bitte helfen Sie mir zu verstehen, was ich hier vermisse?
Sie könnte eine String-Ersetzungsfunktion für node_sequence hinzufügen, um das Komma loszuwerden. –
Ja, aber ich möchte sehen, ob dies möglich ist, ohne das Komma zu ersetzen. Das Ersetzen wird viele Änderungen in den referenzierten Orten verursachen – Chandan