Db2全文检索问题

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

我在 DB2 版本 11.1 数据库中进行文本搜索时遇到问题。数据库不区分大小写。我已经在 CLOB 类型的列上创建了全文索引。现在我发现了一个异常。

要在文本中搜索单词,我使用以下查询:

db2 "select id from table where CONTAINS(column,'wider')=1"

如果我在以下文本中搜索“Wider”一词:

“美式酒吧区前部拥有令人印象深刻的结构柜台,与船中部的扩展休息区结合在一起,休息区配有宽沙发,旨在适应不同的欢乐场合,并由碳纤维硬顶遮蔽。”

并使用上面粘贴的查询,不幸的是,我不明白为什么,文本搜索产生了积极的结果;文本包含搜索到的单词。

如果我搜索“wide”一词,文本搜索会正确产生肯定的结果。如果我搜索单词“wid”,文本搜索会正确地产生否定结果。

“更广泛”这个词的问题与其他词的表现类似。

有人可以解释一下这个问题吗?谢谢你。

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

按设计工作...

CONTAINS 函数搜索单词或短语的匹配项,并且可以 与通配符一起使用来搜索a中的子字符串匹配项 方式类似于 SQL LIKE 谓词,可以搜索精确的 字符串匹配方式类似于 SQL = 运算符。然而, 使用 CONTAINS 函数和 使用 SQL LIKE 谓词或 = 运算符。 LIKE 谓词和 = 运算符在文档中搜索模式,而 CONTAINS 使用 语言处理:也就是说,它搜索不同形式的 搜索词。例如,即使不使用通配符, 搜索术语“工作”还会返回包含“工作”的文档 并工作了。

如果要查找完全匹配,请使用双引号

db2 "select id from table where CONTAINS(column,'"wider"')=1"

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