【问题标题】:Oracle Fuzzy text search [closed]Oracle 模糊文本搜索 [关闭]
【发布时间】:2013-01-11 17:08:23
【问题描述】:

如何在 Oracle 中进行模糊名称搜索?

例如:

我们的数据系统有以下首选邮件:

先生。尼古拉斯·吉姆·罗利

但在 Facebook 或其他搜索字段中,传递给算法的名称是:

尼克·吉姆·罗利

该过程将对所有首选名称运行搜索名称,然后返回包含最多匹配字符的结果:

先生。 [尼克]olas 吉姆·雷利

[尼克]k 吉姆·雷利

在我搜索的名称的 17 个字符中,有 16 个字符出现在首选名称中,我们可以返回排名建议。

[编辑添加]

在初步建议和阅读Oracle's Text Query options 之后,我在表上创建了一个索引

create index ADD_EX_INDX3 on address_extract(pref_mail_name) 
  indextype is ctxsys.context 
  parameters ('DATASTORE CTXSYS.DEFAULT_DATASTORE');

现在可以成功退休

select score(1), ae.pref_mail_name
from address_extract ae
 where contains(pref_mail_name,'fuzzy(raleigh,,,weight)',1) > 0
order by score(1) desck

返回

100 Mr. Raleigh H. Jameson
100 Mr. Nicolas Jim Raleigh
100 Ms. Susanne M. Raleigh
66  Mrs. LaReign Smith
66  Ms. Rahil Smith
62  Mr. Smith  Ragalie

但是,我正在努力进行全名搜索。我将如何做全名?

【问题讨论】:

  • 这看起来像你自己没有做任何努力。搜索“fuzzy text search oracle”时立即出现contains 运算符,第二个表示更多general overview;文档中链接的是您需要的ctxcat index 的描述。你有没有尝试过这些?你这样做有什么问题?
  • 感谢您的及时回复。我对“包含”的理解是我的例子行不通。由于“Nick Balcom Raleigh”不包含在“Nicolas Balcom Raleigh”中。你是对的,我可能不明白我需要问的问题。我正在研究“Levenshtein 距离公式”
  • 在您的第一次居高临下的回应后,我很犹豫,但我真的很难让模糊搜索与多个术语一起工作。我要澄清edit我的问题,看看能不能得到一些指点。
  • 嗨劳埃德,很抱歉,如果我觉得我居高临下;这不是故意的。我急于将尽可能多的信息转储到评论中。我确实想指出自己尝试的重要性;它可以阻止用户重复自己的努力并鼓励人们提供帮助。我回来向您指出 UTL_MATCH 和 Jaro Winkler 但我看到 @APC 已经这样做了。这些问题是索引......我真的有两个建议。一种是创建一个“昵称”列表,即尼克到尼古拉斯,然后您可以搜索两者。

标签: oracle plsql full-text-search names


【解决方案1】:

名称匹配是困难。 Oracle 的文本索引支持模糊匹配和词干提取,这是一个开始,但请考虑以下名称:

  • 尼古拉斯·罗利
  • 尼古拉斯·罗利
  • 尼科·罗利
  • 尼克·罗利
  • 尼基·罗利
  • 尼克·罗利
  • 尼古拉斯·罗利
  • 尼古拉·罗利
  • 妮基·罗利
  • 尼古拉·罗利
  • 尼古拉·罗利
  • 尼古拉·罗利

尝试通过抽象来匹配它们,无论是 Levenshtein Distance 还是 Double Metaphone,都会产生误报和漏报。这就是抽象的本质。获得集中且准确的结果集的最佳方法是使用同义词库(即使这并不完美)。不幸的是,组装一个全面的名称词典是一项艰巨的任务。要了解任务,请查看the stats on the NameX site


更新:Oracle 11gR2 包括针对名称搜索定制的 Oracle Text 扩展。这是非常整洁的,绝对是第一个开始的地方。 Find out more.

【讨论】:

    猜你喜欢
    • 2013-02-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-22
    • 1970-01-01
    • 2010-09-24
    • 2016-08-21
    相关资源
    最近更新 更多