栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Oracle Contains无法正常工作

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Oracle Contains无法正常工作

可能的两个原因-索引可能不同步,并且

CONTAINS
似乎在
LIKE
匹配字符串时匹配单词。

两个字符串的示例,其中

LIKE
两个都匹配,但
CONTAINS
都不匹配:

create table test1(must_fix_by varchar2(4000));create index cidx_mustfixby on test1(must_fix_by) indextype is ctxsys.context;insert into test1 values('Q234567');insert into test1 values('Q2 234567');select * from test1 where must_fix_by like 'Q2%';MUST_FIX_BY-----------Q234567Q2 234567select * from test1 where contains(must_fix_by, 'Q2') > 0;no rows selected

默认情况下,

CONTEXT
索引需要手动同步。您要么需要运行:
execctx_ddl.sync_index('cidx_mustfixby');
,要么需要使用创建索引
on commit

exec ctx_ddl.sync_index('cidx_mustfixby');select * from test1 where contains(must_fix_by, 'Q2') > 0;MUST_FIX_BY-----------Q2 234567

这解决了其中一个问题。但是

Q234567
还是不匹配。我对Oracle
Text不太了解,甚至找不到关于其
CONTAINS
工作原理的简单描述。但这似乎是基于完整的单词而不是字符串。Q2和其他字符之间需要有某种类型的单词边界,才能通过简单的
CONTAINS
过滤器将其拾取。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/660288.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号