使用Oracle Text的相关性

时间:2011-07-05 10:02:06

标签: oracle search

我想在新闻文本上实现基于相关性的文本搜索。这是要求。

表将包含CLOB类型的Oracle表列中的新闻文本。搜索将基于用户输入的值的降序的相关性来检索新闻文章。例如用户输入搜索文本“大满贯赛事”。该应用程序将返回所有按此顺序包含这3个关键字中的一个或多个的新闻文章,

  1. 所有带有“大满贯赛事”的文章
  2. 所有有“大满贯”或“大满贯赛事”的文章
  3. 所有包含所有3个单词但不连续的文章
  4. 所有文章中包含其中任何两个单词但没有连续的
  5. 其中至少包含其中一个词的所有文章
  6. 由于数据量较大且文本较长,LIKE搜索速度较慢

    可以使用Oracle 11g的Oracle TEXT搜索功能实现吗?

3 个答案:

答案 0 :(得分:1)

这可能有些偏离主题,但是根据您的环境(如果您没有完全锁定数据库),我们发现使用类似SOLR服务器(或像hibernate-search这样的lucene应用程序)的功能更好,给出更好的相关性,比大多数数据库更易配置。

根据我的经验,我们使用全文搜索功能让mysql执行此操作,但它从未按照我们想要的方式运行。

答案 1 :(得分:0)

虽然我对oracle并不擅长,但据我所知,文本数据类型需要使用contains关键字,文本数据类型应该被编入索引以提供更好的搜索性能

有关新全文搜索的使用情况,请参阅oracle docs

答案 2 :(得分:0)

查看以下示例,它将解释如何使用“包含”进行搜索。


http://www.oracle-base.com/articles/9i/FullTextIndexingUsingOracleText9i.php

本文档还包括您可以在包含搜索中使用的运算符。 http://download.oracle.com/docs/cd/B28359_01/text.111/b28304/cqoper.htm#autoId8