问题标签 [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.
oracle - Oracle 文本:评分函数的奇怪行为
我对一个德国姓氏“Warsoenke”有一种奇怪的行为。
看一下这个:
输出是:
我不知道为什么?如果我输入“Warsoe”或“War”,它会返回 2 分。如果我输入“Warsoen”,它的工作方式就像我理解的那样,它应该返回 1。
如果我不使用definescore
它,它的工作方向相同,只会显示不同的数字(27 和 13)。
对于其他姓氏,它完美而清晰。但是对于这个...
我猜这是因为德国的数据库设置,例如“War so e...”,但这个想法很奇怪,仍然不清楚为什么“Warsoen”会起作用。
有任何想法吗?
编辑
我发现更多的姓氏不像上面描述的那样工作。而且我仍然没有看到任何可能的解释......
ruby-on-rails - oracle 增强 gem:带有 belongs_to 的文本索引
在 Rails gem oracle-enhanced 的文档中,我发现这是在多个表上创建索引:
如果帖子有很多评论,则此方法有效。但是如果一篇文章只有一条评论(belongs_to),我该怎么写呢?或者 has_many 槽关系呢?
谢谢你的帮助。
-e- 只是为了尝试一下我所做的
并得到了这个例外:
oracle - 为什么 Oracle Text Stemming 不起作用?
我在 Oracle 10g 上使用 Oracle Text。我创建了一个多列上下文索引,如下所示:
我的桌子是
我的偏好和索引是:
我的表中有一行如下:
英语不是我的母语,但这个查询不应该返回结果吗?
我希望在搜索“$Contribute”时找到带有“Contribution”的标题,或者在搜索“$approve”时找到带有“approval”的标题。这不就是词干的意义吗?
编辑: 我也尝试了下面的 Basic_Wordlist,但我的查询仍然没有返回任何行:
sql - Oracle 文本包含和带有分隔符的数字
我在一列上使用 ctxsys.context 索引来促进 Oracle Text 全文搜索功能。但是在索引由“,”或“。”分隔的数值时会出现问题。
我创建了如下索引:
然后我插入四个文本文档:
现在我想使用 contains 运算符搜索“FOO 300 BAR”、“1,000.00”以及两者的组合:
第一个按预期工作,结果我得到了 id 1 和 2。虽然当我尝试使用 1,000.00 时,结果是 0 行。
正如我从文档中看到的那样,它默认使用 BASIC_LEXER。我还尝试在词法分析器上明确指定分隔符并将其应用于索引。
但是我经历了与以前相同的行为。
有人可以解释一下 Oracle Text 如何处理带有分隔符的数字,以及我如何配置索引以便将分隔的数字视为单个单词?
我正在使用 Oracle Database 11g Express Edition Release 11.2.0.2.0 - 64bit Production
sql - 为什么这个新创建的 Oracle 文本索引在重建之前不能工作?
我们最近不得不修复一个错误,即我们的上下文索引无法正确索引我们上传到数据库的任何 Office Open XML 文件格式的内容。我们最终得到的 SQL 类似于这样:
这是在 Oracle 11.2.0.4 数据库上。
乍一看,在创建索引后立即重建索引似乎违反直觉。但是我们发现,如果我们省略了REBUILD
,则索引不会拾取我们上传的任何附件的内容。
我不明白为什么会这样(尽管我会第一个承认我在这方面的知识并不好)。什么REBUILD
做CREATE
不导致它起作用?
每当有人问我们为什么要在创建后立即进行重建时,我们现在只能回答“因为如果我们不这样做就行不通”,这不是一个非常令人满意的答案(或给这件事)...
我们有一个每分钟运行一次的后台作业,它调用一个存储过程,它调用:
该过程本身只包含一些异常处理代码和这个调用 - 不会对此产生任何影响。
我们在删除并重新创建索引时将作业脱机,然后在完成后将其重新在线购买。然后,我们让该作业运行几分钟以确保它没有失败(它没有失败),然后将我们的 .docx 文件上传到数据库。我们再次等到作业运行并验证它没有失败(再次,这很好),然后尝试搜索该上传文件的内容,但始终没有返回任何结果。
如果我们然后REBUILD
对该索引执行 a ,则该文件被索引,并且从那时起所有新文件也被正确索引。如果我们不这样做,它似乎永远不会工作(注意:我们也尝试在删除并重新创建索引时将工作留在网上,但没想到会奏效 - 它没有)。
sql - Oracle 文本查询数百个关键字
Oracle 文本很棒。但是现在我必须使用存储在单独表中的 100 多个单词进行查询(比如说 table_keywords)。有没有人知道如何在不将所有关键字写入查询的情况下做到这一点?
代替
做
是…… 像这样可能吗?
非常感谢!
sql - 如何在不区分大小写的索引中搜索区分大小写
我必须使用存储在单独表中的 100 多个单词(不区分大小写)进行查询。
这工作正常。但是现在我有一个关键字必须区分大小写。
有人知道如何在不创建区分大小写的索引并单独查询该关键字的情况下做到这一点吗?是否有可能忽略一个关键字,比如说“我们”,而只使用大写字母(“美国”)的关键字创建索引。
我尝试在停用词中添加“我们”,但没有成功。
oracle - 在 Oracle 中使用包含 LIKE 的结构化谓词计算命中返回错误结果
我正在尝试使用 Oracle Text 执行查询,在该查询中我正在搜索以“AIX”开头并且还包含子字符串“XYZ”的任何操作系统名称。不知何故,这种查询公式会产生 0 个结果,即使我将其分解为单独的部分,也会有明显的结果:
这将返回 0 个结果。
但奇怪的是,如果我将其修改为:
它返回结果,但当然只返回与 AIX 6.1.0.0 相关的结果...
我正在使用 Oracle 11g2。
ORACLE TEXT 包中是否可能存在错误?
我想我可以分成两个 INTERSECT 查询并对结果进行 COUNT(*),但这会使事情复杂化并且似乎运行了很长时间......我想使用简单的“AND”形式......如果可能的话...
这有效但运行了很长时间并且不必要地复杂:
另请注意,如果我尝试对原始查询执行 EXPLAIN,就好像查询的“LIKE”部分甚至根本没有执行......!这是相当奇怪的:
Oracle Database 11g 企业版 11.2.0.3.0 - 64 位。NLS_COMP 值为 BINARY,NLS_SORT 值为空。该表仅加载一次,因此同步索引不是问题。
oracle - oracle 不使用已定义的索引
如下所示,我的表 A 和 B 之间有一个简单的连接。此外,每个表上都有一个与 Or 运算符组合的条件。
在 ProductId 上定义了一个 b-tree 索引,对于 KeyWords 有一个函数索引。但我不知道为什么我的执行计划不使用这些索引并执行完整的表访问?正如我在此URL 中发现的那样,NO_EXPAND 优化提示可能会在执行计划中使用索引(NO_EXPAND 提示可防止基于成本的优化器考虑对 WHERE 子句中具有 OR 条件或 IN 列表的查询进行 OR 扩展)。但我没有看到定义索引的任何用途
我的查询有什么 oracle 问题?!
sql - Oracle CONTAINS() 不返回数字的结果
所以我有一个带有全文索引列“值”的表。该字段包含一些数字字符串,当我使用这样的查询时会正确返回:
麻烦的是,它非常慢,因为该表中有很多行,但是当我使用 CONTAINS 运算符时,我没有得到任何结果:
有人有什么想法吗?
不幸的是,我不是 Oracle 的老兄,同样的查询在 SQL Server 中运行良好。我觉得它必须是一个停止列表或我可以更改的 Oracle Lexer 的东西,但不确定如何更改。