我有这样的疑问:
select id from mytable where contains(all_text,'('||?||' within name)*2,
('||?||' within description)',1)>0where子句中的contains是如何工作的?
谢谢,
发布于 2012-02-12 11:47:01
如果第一个参数出现在name部分中,则其权重是description部分中第二个参数的权重的两倍。
这个"contains“操作符将设置分数变量。如果没有它,加倍的重量对于">0“条件没有意义。然而,
SELECT id FROM mytable WHERE CONTAINS(all_text,'('||?||' WITHIN name)*2,
('||?||' WITHIN description)',1)>0 ORDER BY SCORE(1) DESC 这是完全有意义的,并且将按照在name部分中找到搜索词的那些行来排序id的第一行。
这里有一个有用的参考,以防万一:http://docs.oracle.com/cd/B19306_01/text.102/b14218/cqoper.htm
https://stackoverflow.com/questions/9245960
复制相似问题