2016-01-23 45 views
0

首先我是新手到Oracle Text所以请耐心等待。 我认为我的情况很简单,因为我必须搜索同一个表的两个字段,而且这些字段都很小。 阅读了一些文章后,我认为CTXCAT索引对我来说已经足够了,但我不明白如何搜索词的部分;例如,如果我搜索'高峰',我想返回像'说'的话。你能帮我理解这一点吗?Oracle全文如何搜索近似词汇

回答

1

请访问以下链接:

http://www.oracle.com/technetwork/testcontent/ctxcat-primer-090555.html

上述一些从链接部分如下。

我想找到所有拍卖品包含单词“玩具”和“狗”,而不是所谓“活的动物”:

SELECT item_id, item_desc 
FROM auction WHERE CATSEARCH (item_desc, '(toy dog) | "live animal"', null) > 0;         

有几点要注意:

  1. AND的术语不需要AND和甚至“&”运算符。 AND是 之间假定任何相邻的条款。
  2. NOT用“|”表示(或者,这里使用的不是 ,用“|”表示)。
  3. 括号可以用于将 组合起来。
  4. 双引号来环绕一个短语(否则“活 动物”会被读成“活的动物”。

在上面的查询中的“空”是一个占位符没有默认 - 如果你没有提供任何结构化子句,你必须在这里输入“null” 结构化子句允许你限制或排序你的结果如果我想把上面的查询扩展到只找到价值低于100美元的物品,我可以用

WHERE CATSEARCH (item_desc, '(toy dog) | "live animal"', 'price < 100') > 0 

如果我想要的结果与最新项目第一,我可以用

WHERE CATSEARCH (item_desc, '(toy dog) | "live animal"', 
        'price < 100 order by start_time desc') > 0 
+0

感谢Shariar :) – Fra83

+0

非常欢迎你的兄弟:) –