【问题标题】:Google like query for Oracle database谷歌喜欢查询 Oracle 数据库
【发布时间】:2015-02-26 04:15:28
【问题描述】:

我想查找 Oracle 表中包含公司名称的列。

如果我要求“Jennifer's Dry Cleaners”,我不仅希望返回精确匹配,还希望返回“接近匹配”,例如(但不限于):

詹妮弗的管道清洁剂 杰西卡的干洗店 詹妮弗管道清理 詹妮弗的管道清洁

有没有办法做到这一点?

【问题讨论】:

  • 你会更幸运地创建一个为你进行查询的应用程序,找到精确匹配和相似匹配的东西。除此之外,尝试谷歌?一点点研究就会有很长的路要走。 :)

标签: oracle search-engine


【解决方案1】:

您也许可以对每个单词使用 LIKE 运算符,并将其与 UTL_MATCH.EDIT_DISTANCE 结合以按接近度对结果进行排序:

SELECT 
    company_name, 
    utl_match.edit_distance(lower(company_name), 'jennifers dry cleaners') edit_distance 
FROM company_names 
WHERE 
     lower(company_name) LIKE '%jennifer%' OR
     lower(company_name) LIKE '%dry%' OR
     lower(company_name) LIKE '%cleaner'
ORDER BY edit_distance asc;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-01-31
    • 1970-01-01
    • 2014-03-30
    • 1970-01-01
    • 2020-05-30
    • 2012-12-23
    • 2012-09-18
    • 1970-01-01
    相关资源
    最近更新 更多