问题标签 [oracle-text]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
51722 浏览

oracle - Oracle 是否支持全文搜索?

是否有与 MS SQL 的全文搜索服务相当的 Oracle?

如果是这样,有没有人实施它并有好的/坏的经验?

0 投票
3 回答
4551 浏览

oracle - Oracle Text:如何清理用户输入

如果有人有使用 Oracle 文本 ( CTXSYS.CONTEXT) 的经验,我想知道当用户想要搜索可能包含撇号的名称时如何处理用户输入。

在某些情况下,转义 ' 似乎有效,但对于单词末尾的 's 无效 - s 在停用词列表中,因此似乎被删除了。

我们目前将简单的查询文本(即任何只是字母的内容)更改%text%为 ,例如:

搜索O'Neil有效,但Joe无效。

有没有人使用 Oracle Text 处理过这个问题?

0 投票
1 回答
7248 浏览

oracle - 设置 Oracle Text 以索引 Oracle 表中多个列的值

我有一组描述业主信息的 Oracle 表。对于每个所有者,所有者名称和其他文本值存储在多个相关表的多个字段中。我想索引这些字段的内容。我的目标是提供一个字段,用户可以在其中输入关键字来定位所有者。

如何设置 Oracle Text 来完成此任务?

0 投票
2 回答
5281 浏览

sql - Oracle 使用 contains 关键字选择所有行

我正在寻找可以在 Oracle 中使用的字符来获取所有结果。

如果我在标题列中搜索字符串“test”,我会使用以下语句:

通过这个语句,我得到了标题列中包含“test”字符串的行。

但是:有没有办法使用包含并选择所有行?

0 投票
3 回答
31198 浏览

oracle - 如何同步和优化 Oracle Text 索引?

我们想使用ctxsys.context索引类型进行全文搜索。但我很惊讶,这种类型的索引不会自动更新。我们有 300 万份文档,每天约有 10k 次更新/插入/删除。

您对同步和优化 Oracle Text 索引有什么建议?

0 投票
2 回答
16781 浏览

oracle - 如何在 Oracle 的 CONTAINS 运算符中获得大约 4000 个字符的 text_query 限制?

在 Oracle 中,包含运算符的全文搜索语法为:

这意味着 text_query 不能超过 4000 个字符,否则会发生错误。在许多情况下,我反复让 text_query 超过 4000 个字符。作为 Oracle 专家,如果可能的话,您会如何建议绕过这种限制?

进一步澄清一下容易达到 4000 的情况是,如果你结合许多 包含查询运算符来构造你的 text_query,很有可能超过这样的 4000 个字符的限制。

0 投票
2 回答
621 浏览

oracle - Oracle 文本搜索范围

我正在寻找一种更好的方法来搜索 Oracle Text 中的数字范围。我有一个数据库应用程序,它做了很多 GIS 类型的事情,但我们现在想向它添加街道范围搜索。

所以我想将最小值和最大值存储在一列中,并在这些值中搜索一个数字。我很高兴去探索选项,但我想要一些关于去哪里的指示。有人对我有什么建议吗?

编辑:我们只是想让地址查找更容易。地址部分的文本取得了巨大的成功,但我们希望存储街道范围而不是每个单独的门牌号。所以,如果我搜索“11 high street”,如果 high street 的范围在 1 到 1000 之间,我会期望匹配。如果我搜索“flat 1 11 high street”,我还想要一些可以使用的选项“虽然也是。我希望在这些情况下我将不得不对输入做一些调整,我只是想知道我可以尝试使用哪些工具。

0 投票
1 回答
1914 浏览

oracle - 单个索引上的 Oracle 文本调度同步

我需要同步一个 oracle 文本索引。但是作业无法创建:

或运行:

但如果我运行任何这些作品:

知道正确的语法吗?

谢谢你。

PD:我一直在寻找,但我找到的唯一答案不符合我的要求。我也为我的英语道歉。

0 投票
0 回答
1043 浏览

oracle - 使用 Oracle Text 通过连接搜索多个表

(注意:这个问题是从 ServerFault 交叉发布的。)

我需要在我的 oracle 10g 数据库中的多个表中执行 oracle 文本搜索。这些表具有以下结构:

Table1 与 SubTable1 和 Subtable2 具有一对多的关系。

在运行时,客户端应用程序将提供搜索词以在三个表中进行搜索。只有任一表中包含搜索词的记录才应连接在一起并返回给客户端应用程序。

场景(简化示例)

如果 Table1 中的一条记录在 SubTable1 中有 10 条记录,但 10 条记录中只有 4 条包含搜索词,则应仅将 4 行返回给客户端应用程序。SubTable2 也是如此。

问题

有没有一种方法可以通过最少的更改来做到这一点,理想情况下只contains在所有表中进行一次搜索?或者我真的需要contains为每张桌子指定一个吗?

附加说明

  • 我遵循了这一点,并尝试在 Table1 中创建一个虚拟文本索引列User_Datastore。存储过程用于从 XML 格式的所有表中检索和格式化所有相关数据。这不起作用,因为将返回 SubTable1(在场景中说明)中的所有 10 条记录。Table1 中的行与搜索词匹配,然后与 Subtable1 中的所有 10 行连接。
0 投票
1 回答
386 浏览

oracle - Oracle 文本索引(上下文)不断增长

在我的应用程序中,我需要从不同的表中搜索许多 varchar 列。

所以我创建了一个物化视图,在其中连接这些列,因为它们超过了 4000 个字符,所以我将它们与 TO_CLOBS(column1) || 连接在一起。TO_CLOB(列)... || TO_CLOB(列 N)。

查询很复杂,因此刷新是根据视图的需要完成的。我们每 2 分钟刷新一次。

CONTEXT 索引是使用 sync on commit 参数创建的。

然后索引每两分钟同步一次。

但是当我们运行优化索引时,它不会对索引进行碎片整理。所以它一直在增长。

在 ctx_user_indexes 我看到优化如何降低 docid 计数但令牌不会缩小。但是当我在索引优化中使用 REBUILD 参数时,它可以正常工作(下拉 DR$TEXT_INDEX_IDX$I 中的行数)。

任何的想法 ?

谢谢,并为我糟糕的英语感到抱歉。