Oracle文本:得分函数的奇怪行为

Oracle文本:得分函数的奇怪行为,第1张

概述我对德国姓氏“Warsoenke”有一种奇怪的行为. 看一下这个: create table test_warsoeasselect 'Mister Warsoenke ABC-12' namefrom dual;create index test_warsoe_index on test_warsoe(name) indextype is ctxsys.context;select 我对德国姓氏“Warsoenke”有一种奇怪的行为.

看一下这个:

create table test_warsoeasselect 'Mister Warsoenke ABC-12' namefrom dual;create index test_warsoe_index on test_warsoe(name) indextype is ctxsys.context;select name,score(1) as rating_warsoe,score(2) as rating_warsoenfrom test_warsoewhere contains(name,'definescore(Warsoe%,occurrence)',1) > 0   or contains(name,'definescore(Warsoen%,2) > 0;

输出是:

Mister Warsoenke ABC-12  |  2  |  1

我想不通为什么?如果我输入“Warsoe”或“War”,它会返回得分2.如果我输入“Warsoen”,它就像我理解的那样,应该返回1.

如果我不使用definecore,它的工作方向相同,只显示不同的数字(27和13).

对于其他姓氏,它完美而清晰.但对于这一个……

我猜这是因为德国的数据库设置,例如“战争如此……”但这个想法很奇怪,但仍然不清楚为什么“Warsoen”会起作用.

有任何想法吗?

编辑

我发现了更多不像上述那样工作的姓氏.我仍然没有看到任何可能的解释……

解决方法 如果有人遇到同样的问题,问题在于设置DEFAulT_LEXER:

BASE_LETTER        | YESALTERNATE_SPELliNG | GERMAN

这是我们调查后收到的:

要更改行为,必须更改两个参数中的任何一个,或者必须将附加参数OVERRIDE_BASE_LETTER设置为true(根据docs).

总结

以上是内存溢出为你收集整理的Oracle文本:得分函数的奇怪行为全部内容,希望文章能够帮你解决Oracle文本:得分函数的奇怪行为所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/1165881.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-01
下一篇 2022-06-01

发表评论

登录后才能评论

评论列表(0条)

保存