我想查询数据库中某张表里的任意字段包含某指定字符的记录,是用全文检索工具吗?根据网上查的全文检索的配置和操作,好像是根据某字段建立全文索引后,再根据这个索引进行全文检索,那这样的意思是不是只在某个字段中查找指定字符,而非全部字段?
如果全文检索工具跟我想要的查询不是一回事,那我想要的查询要怎么实现呢?sql语句怎么写?
å ¨ææ£ç´¢æ¯ä¸ç§å°æ件ä¸ææææ¬ä¸æ£ç´¢é¡¹å¹é çæåèµææ£ç´¢æ¹æ³ãå ¨ææ£ç´¢ç³»ç»æ¯æç §å ¨ææ£ç´¢ç论建ç«èµ·æ¥çç¨äºæä¾å ¨ææ£ç´¢æå¡ç软件系ç»ã
å¤ææ£ç´¢ææç两个ææ ï¼
æ¥å ¨ç=被æ£åºç¸å ³ä¿¡æ¯é/ç¸å ³ä¿¡æ¯æ»éï¼%ï¼
æ¥åç=被æ£åºç¸å ³ä¿¡æ¯é/被æ£åºä¿¡æ¯æ»éï¼%ï¼
Oracleå
¨ææ£ç´¢é
ç½®æ¹æ³ï¼
1.æ£æ¥æ°æ®åºæ¯å¦å ·æå ¨ææ£ç´¢åè½ï¼è¿æ¯é对已ç»å»ºæ使ç¨çæ°æ®åºï¼
æ¥çç¨æ·ä¸æ¯å¦åå¨ctxsysç¨æ·ï¼æ¥è¯¢è§è²éæ¯å¦åå¨ctxappè§è²ã以ä¸ä¸¤ä¸ªä¸ç1个ä¸æ»¡è¶³ï¼ä¸åå¨ï¼ï¼å说æ没æè£ è¿å ¨ææ£ç´¢åè½ã
使ç¨containså½æ°çæ¶åï¼è¥æ²¡æå ¨ææ£ç´¢åä¼æ¥éçã
2.è¥æ²¡æï¼åéè¦æå¨å»ºç«ï¼å 建ç«å ¨ææ£ç´¢è¦ä½¿ç¨ç空é´
sqlplus / as sysdba --è¿å ¥æ§å¶å°
create tablespace Idx_ctxsys datafile '/oradata/sg186fx/ctxsys01.dbf size 10240M autoextend on next 32M maxsize 20480M;--åå»ºå ¨ææ£ç´¢ä½¿ç¨ç表空é´3.åå»ºå ¨ææ£ç´¢ä½¿ç¨çç¨æ·åè§è²åç¸åºçå ï¼åéè¦æ§è¡oracleèªå¸¦çä¸ä¸ªèæ¬ï¼cd $ORACLE_HOME/ctx/admin/catctx.sql
è¿æ¯å¨sqlplusä¸æ§è¡ï¼
@?/ctx/admin/catctx.sql ctxsys Idx_ctxsys temp nolock
å¨æ§è¡è¿ä¸ªèæ¬çæ¶åï¼è¾å ¥äºå 个åæ°ï¼ç¬¬ä¸ä¸ªåæ°ctxsys为ctxsysç¨æ·çå¯ç
第äºä¸ªåæ°Idx_ctxsys为ctxsysç¨æ·è¦ä½¿ç¨ç表空é´
第ä¸ä¸ªåæ°temp为ctxsysç¨æ·ä½¿ç¨ç临æ¶è¡¨ç©ºé´
第å个åæ°nolock为ctxsysç¨æ·å¤äºè§£éç¶æã
4.å建å®æåï¼è¦ç»å½ctxsysç¨æ·
connect ctxsys/ctxsys
æ§è¡ä»¥ä¸èæ¬ï¼@?/ctx/admin/defaults/drdefus.sql(è¿æ¯ä¸ªå¾éè¦çèæ¬ï¼åé¢å建索å¼ä¼ä½¿ç¨è¯¥èæ¬å建çä¿¡æ¯)
5.åå»ºå ¨æç´¢å¼è¯æ³åæå¨
å è¦æ确使ç¨å ¨æç´¢å¼çç¨æ·ï¼æè¦ä½¿ç¨å ¨æç´¢å¼çæ¯sgpmç¨æ·
å æ¤
grant execute on ctxsys.ctx_ddl to sgpm with grant option;connect sgpm/sgpm
设置è¯æ³åæå¨ï¼
exec ctx_ddl.drop_preference('chinalexer');6.å建索å¼
create index sgpm.idx_c_cons_name on sgpm.c_cons(cons_name) indextype is ctxsys.context parameters('lexer chinalexer storage idx_c_store');7.åæ¥ç´¢å¼
variable jobno number;æ®éçå°±æ¯ç¨ï¼
exec ctx_ddl.sync_index('idx_c_cons_name');å°æ¤ï¼å ¨ææ£ç´¢å建æåï¼containså½æ°å°±å¯ä»¥æ£å¸¸ä½¿ç¨äºã
注æï¼å建çè¿ç¨ä¸ä¼åºç°ORA-29879:cannot create multiple domain index on a column listusing same indextype ,è¿è¯´æå¨å ¶ä»ç¨æ·ä¸å·²ç»å»ºç«äºè¯¥ç´¢å¼ã
select * from table_name并没有加条件搜索我指定的关键字啊;至于索引的问题你说的太深奥我理解不了,我试了在好几个字段上建立全文索引都不成功。
本回答被网友采纳