gpt4 book ai didi

oracle - 如何使用 Oracle 全文搜索在 XML CLOB 中搜索单词 'IN'?

转载 作者:行者123 更新时间:2023-12-02 02:18:35 25 4
gpt4 key购买 nike

我正在尝试追踪一些现有代码中的错误,我是 Oracle 全文搜索的新手...

我在查询返回包含 xml 文档中单词“IN”的行时遇到问题。

例如,假设我将这段代码存储在我的 Oracle 10 数据库的 CLOB 中:

<a>
<b>IN</b>
</a>

我想找到所有 b 值为“IN”的条目,所以我创建了一个如下所示的 where 子句:

where contains(column, '(IN) INPATH (//b)') > 0;

但这不会返回任何结果。我尝试搜索其他术语,例如“AA”和“BS”,但效果很好。

我搜索了 Google 和 Oracle documentation对于保留字,但我没有看到那里列出的“IN”。显然,它是 SQL 中的保留字,但我在完整测试搜索或 XPATH 文档中没有看到对它的引用。

我也尝试过用 {}、""和我能想到的任何疯狂的东西来转义这个词,但这没有帮助。

如有任何建议,我们将不胜感激!

最佳答案

您的假设可能是正确的。在全文搜索中,术语是“停用词”。如果您没有定义自己的非索引字表,则使用默认值:CTXSYS.DEFAULT_STOPLIST。参见 this默认英文非索引字表的文章。里面有“in”这个词。

您可以删除停用词或使用 CTX_DDL 创建您自己的停用词表包,特别是 CTX_DDL.REMOVE_STOPWORDCTX_DDL.CREATE_STOPLIST

关于oracle - 如何使用 Oracle 全文搜索在 XML CLOB 中搜索单词 'IN'?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9335676/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com