oracle text ctxrule - MATCHES:特殊字工作而不起作用?

时间:2017-06-17 09:00:11

标签: oracle full-text-search

我使用CTXRULE对某些文本进行分类,但AB& B工作和AT& T不起作用。请支持我:

这是我的搜索文本

SQL> select text from test_lexer_special;

TEXT
--------------------
AB&B
{AT&T}
AT&T

SQL>

我如何创建索引

SQL> EXEC CTX_DDL.CREATE_INDEX_SET('test_ctxrule_1');    
PL/SQL procedure successfully completed.

SQL> EXEC CTX_DDL.CREATE_PREFERENCE ('testmy_lexer', 'BASIC_LEXER');    
PL/SQL procedure successfully completed.

SQL> EXEC CTX_DDL.SET_ATTRIBUTE ('testmy_lexer', 'PRINTJOINS', '&');    
PL/SQL procedure successfully completed.

SQL> CREATE INDEX test_ctxrule_index1 ON test_lexer_special (text)
  2  INDEXTYPE IS CTXSYS.CTXRULE  
  3  PARAMETERS ('INDEX SET test_ctxrule_1 LEXER testmy_lexer STOPLIST CTXSYS.EMPTY_STOPLIST');

Index created.

SQL>

这有效

SQL> SELECT *  FROM    test_lexer_special WHERE MATCHES(text, 'ab&b')> 0;

TEXT
--------------------
AB&B

SQL>

这不起作用

SQL> SELECT *  FROM    test_lexer_special WHERE MATCHES(text, 'at&t')> 0;

no rows selected

SQL> select token_text,token_extra from DR$test_ctxrule_index1$I;

TOKEN_TEXT           TOKEN_EXTRA
-------------------- --------------------
AB                   {B}

SQL> 

感谢。

0 个答案:

没有答案