sql >> Databáze >  >> RDS >> Oracle

Oracle Text Obsahuje a technický obsah

Nejprve musíte definovat spojovník jako printjoin ve vašem lexeru.

zkontrolujte to pomocí

select IXV_ATTRIBUTE, IXV_VALUE from CTXSYS.CTX_INDEX_VALUES where IXV_CLASS =  'LEXER';

IXV_ATTRIBUTE                  IXV_VALUE     
-----------------------------------------
PRINTJOINS                     _$%&-         
NUMJOIN                        .              
NUMGROUP                       .              
WHITESPACE                     ,= 

Poté můžete (po opětovném vytvoření indexu pomocí tohoto lexeru) ověřit, že tokeny jsou podle očekávání:(vaše tabulka se bude lišit podle názvu indexu; zkontrolujte všechny tabulky jako 'DR$%$I')

select TOKEN_TEXT from DR$TEXTIDX_IDX$I where TOKEN_TEXT like '%-XYZ99';
TOKEN_TEXT                                                     
----------------------------------------------------------------
AN-XYZ99                                                         
BAR-XYZ99                                                        
FO-XYZ99

Nyní můžete zadat dotaz na vyhledávací řetězec.

Zjevně musíte pomlčku opustit jako BAR-XYZ99 najde řádky s BAR ne obsahující XYZ99; ačkoli dokumentace hyphen with no space je trochu jiný.

SELECT SCORE(1),txt
FROM textidx
WHERE  CONTAINS(txt, 'BAR-XYZ99',1) > 0; 

  SCORE(1) TXT                                                                                
---------- ------------------------------------------------------------------------------------
         4 unbekannt Stadt Text: FO-XYZ99 << foobar Straße 31.12.2017 Datum Host 20160101 bar

Z nějakého důvodu (jsem na 11.2.0.2.0) escapování se složenými závorkami nefunguje (nevrací žádnou shodu), ale použití zpětného lomítka je v pořádku.

SELECT SCORE(1),txt
FROM textidx
WHERE  CONTAINS(txt, 'BAR\-XYZ99',1) > 0;  

  SCORE(1) TXT                                                                                
---------- ------------------------------------------------------------------------------------
         4 unbekannt Stadt Text: BAR-XYZ99 << foobar Straße 31.12.2017 Datum Host 20160101 bla 



  1. Použití PostgreSQL Logical Replication k udržení vždy aktuálního testovacího serveru pro čtení/zápis

  2. Převeďte byte na dvojnásobnou přesnost v PostgreSQL

  3. MySQL RAND() jak často ji lze používat? používá /dev/random?

  4. SQL Server cizí klíč k více tabulkám