Oracle Full Text如何搜索类似的单词

时间:2016-01-23 19:28:44

标签: oracle full-text-search

首先,我是Oracle Text的新手,所以请耐心等待。 我认为我的情况管理非常简单,因为我必须在同一个表的两个字段上进行搜索,这些字段非常小。 看完一些文章后,我认为CTXCAT指数对我来说已经足够了,但我不明白如何搜索部分单词;例如,如果我搜索“峰值”,我想返回像'speak'这样的词。你能帮我理解一下吗?

1 个答案:

答案 0 :(得分: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. ANDed术语不需要单词AND甚至是“&”运营商。并且是   假设在任何相邻的条款之间。
  2.   
  3. NOT由“|”表示(或不   这里使用的是“|”)。
  4.   
  5. 括号可用于分组   术语
  6.   
  7. 双引号用于包围短语(否则为“直播”   动物“本来应该被视为”活着和动物“。
  8.   

上面查询中的“null”是结构化子句的占位符。没有默认值 - 如果你不提供任何结构化的条款,你必须在这里放置“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