Oracle
 sql >> база данни >  >> RDS >> Oracle

Oracle Text Съдържа техническо съдържание

Първо трябва да дефинирате тирето като printjoin във вашия лексер.

проверете го с

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

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

След това можете (след повторно създаване на индекс с този лексер) да потвърдите, че токените са според очакванията:(вашата таблица ще варира в зависимост от името на индекса; проверете всички таблици като „DR$%$I“)

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

Сега можете да направите заявка за низа за търсене.

Очевидно трябва да избегнете тирето като BAR-XYZ99 ще намери редове с BAR не съдържащ XYZ99; въпреки че документация на hyphen with no space е малко по-различно.

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

По някаква причина (аз съм на 11.2.0.2.0) екранирането с къдрави скоби не работи (връща без съвпадение), но използването на обратна наклонена черта е добре.

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Фонови процеси

  2. Преобразуването на SQL дата води до невалиден параметър на модела на числов формат.

  3. Oracle:Достъп само за четене до схемата за друг потребител?

  4. Форматът на датата по подразбиране на Oracle е ГГГГ-ММ-ДД, ЗАЩО?

  5. искат да показват положителни и отрицателни стойности в различни колони чрез една заявка