oracle如何包含查询工作?

时间:2012-02-12 02:36:21

标签: oracle

我有这个问题:

select id from mytable where contains(all_text,'('||?||' within name)*2,
('||?||' within description)',1)>0

where子句中的包含如何工作?

谢谢,

1 个答案:

答案 0 :(得分:1)

如果第一个参数出现在名称部分,则其权重是描述部分中出现的第二个参数的两倍。

此“包含”运算符将设置分数变量。没有它,重量加倍对于“> 0”条件没有意义。然而,

SELECT id FROM mytable WHERE CONTAINS(all_text,'('||?||' WITHIN name)*2,
('||?||' WITHIN description)',1)>0 ORDER BY SCORE(1) DESC 

完全有意义,并且会在名称部分找到搜索词的那些行首先命令id。

以下是一个有用的参考,以防万一:http://docs.oracle.com/cd/B19306_01/text.102/b14218/cqoper.htm