Oracle Text Feature

时间:2014-08-18 16:37:31

标签: oracle11g

我需要从oracle中的自由格式字符串派生国家(自由格式字符串是用户输入并存储在数据库的列中)并存储此派生值。 推导的条件基于以下任一情景:

1)国家/地区的代码/ country / city / zip(仅适用于美国)可以是字符串中的任何位置,有时可能会有多个匹配。 2)如果字符串中提供了邮政编码(对于美国城市),则应该派生国家(邮政城市状态查找参考表为美国存储此信息)。 3)字符串中存在国家名称及其对应的2个字符的国家代码(或ISO代码)(再次存储在查找引用表中)。 4)在某些情况下,国家/地区将直接出现在输入字符串中。

让我们假设1个城市/国家输入字符串的简单情况是:DEUTSCHE BANK,UNIT NO。 123,纽约

由于字符串包含“NEW YORK”,因此国家/地区派生是美国(基于与国家/地区匹配的查找信息)。

现在,诀窍是字符串上可能有多次点击: 台湾DEUTSCHE BANK DE,第123号单位

在上面的字符串(简单的多重命中字符串)中,至少有两种可能性:DE,TAIWAN(DE对应于来自查找参考的德国,而TAIWAN在字符串中拼写出来)。 在这种情况下,必须有一个排序机制,根据某些标准对两种可能性进行加权:假设,如果一个国家最初在字符串中拼写出来,那么它的权重将高于另一个国家的代码等。 可以根据需要配置需要更多权重的选择。如果以后,要求建议给予代码更高的权重,那么它应该只需要改变元数据来改变权重,结果应该反映出变化。

在技术方面,我使用regexp和简单的字符串操作创建了一个pl / sql代码,这些操作可以完成其中一些操作。但是,它非常缓慢,并且在覆盖其中一些场景方面存在局限性,坦率地说,这是一种我不喜欢的方法。我们只是想把第一个原型推出门外。所以,我们不得不匆匆忙忙。 但是,现在我们想要简化性能方法,因为有几千个输入行(大约30K)包含每天进来的输入字符串,并且需要在运行中或至少作为批处理发生,但是在更快的回应率。

我正在阅读有关Oracle Text功能的设计方法,并对我一直在寻求的一些功能感到惊讶。但是,我不知道从哪里开始,因为我之前没有使用过oracle文本功能,尽管我已经开始阅读它了。 来自专家的好指点将非常感激。

环境:Oracle 11g。

谢谢, 凯西

0 个答案:

没有答案