Oracle数据库全文搜索

问题描述 投票:0回答:1

我正在尝试运行此查询

SELECT
    e.*,
    CONTAINS(fullname, ' ( ('|| 'SAHU*' ||') within PRIMARYID )  * 2 OR ( ('|| 'SAHU*' ||') within LASTNAME )  ',1)  AS match_score
FROM Employee e

我已经为全名和姓氏创建了索引,但我仍然看到此错误

ORA-20000:Oracle Text 错误:DRG-10837:姓氏部分不 存在 20000.00000 - “%s” *原因:存储过程“raise_application_error” 被调用导致生成此错误。 *操作:按照错误消息或联系方式中的描述更正问题 请联系应用程序管理员或 DBA 了解更多信息。

oracle full-text-search oracle-text
1个回答
0
投票

来自文档:

“使用WITHIN 运算符将查询范围缩小到文档部分”

需要对文档进行分段才能在各个部分中进行查看。常见的示例是 XML 或 JSON 文档,因此我们可以在层次结构的某些级别内进行搜索。

我们看不到您的数据,但如果您只是在某些字段的串联上创建了索引,那么这不是部分,它只是一些字符串,并且只能使用标准 CONATAINS(不带WITHIN)进行搜索

© www.soinside.com 2019 - 2024. All rights reserved.