【问题标题】:100-1000+ Term Search For Lucene / Sphinx / MysqlLucene / Sphinx / Mysql 的 100-1000+ 项搜索
【发布时间】:2016-02-18 05:14:31
【问题描述】:

我目前正在构建一个用于监控公司记录的数据库。我需要针对将列出公司名称的表中的单个列搜索许多(我们可能会在完成时谈论几千个)公司名称。我目前使用以下基本的 mysql LIKE 查询(这是精简的,当前有 300 多个要搜索的词):

SELECT * FROM "case-file-owner" WHERE "party-name" LIKE 'Nike%' OR
"party-name" LIKE 'Lyon Group Inc.%' OR "party-name" LIKE 'Target Home%'
ORDER BY "party-name" ASC

如您所见,它有点基本!您将如何使用 Lucene 或 Sphinx 进行这样的搜索?这些工具对这项任务来说是否过大?虽然我需要搜索可能有数千家公司,但当前设置每天只搜索可能包含 1000 条记录的表(我运行的查询会删除我不需要搜索的记录)。

我的主要问题围绕着小问题。例如:Company1, Inc. Company1 Inc. The Company1 Inc. The Company1 Incorporated。是我需要找到的许多公司名称的所有可能表示形式。

匹配有效吗?对于 Lucene 或 Sphinx 来说,这样的巨大查询会永远持续下去吗?我当前的 LIKE 搜索通过丢弃任何领先的通配符运算符来“优化”......但几乎没有智能!

【问题讨论】:

    标签: mysql search lucene


    【解决方案1】:

    我的主要问题围绕着小问题。例如:Company1, Inc. Company1 Inc. The Company1 Inc. The Company1 Incorporated。是我需要找到的许多公司名称的所有可能表示形式。

    通常,您在尝试对公司名称的变量表示进行模式匹配时会遇到问题。您很有可能会产生误报。例如,“Nike%”可能意味着搜索与 Nike Shoes 相关的变体,但也会匹配 Nikeno Inc(如果有这样的公司)。

    如果可能,我建议添加一列 normalized-party-name 来存储代表每家公司的单个搜索词,例如

    normalized-party-name  party-name
    COMPANY INC            Company1, Inc. 
    COMPANY INC            Company1 Inc. 
    COMPANY INC            The Company1 Inc.
    

    然而,最大的问题是逗号、句号等巧妙的变体。我可以相当轻松地创建多个公司名称变体

    您可以从规范化名称中删除所有标点符号。您也可以尝试将 Sphinx 与 Soundex morphology 一起使用。 Soundex 在查找匹配项时会忽略标点符号。然后,您可以使用 extended matching mode 来搜索忽略标点符号的唯一变体。卢塞恩可能有类似的东西,但我没有使用过。

    【讨论】:

    • 我做不到。我不控制数据输入,这些是公共记录:(
    • 您能否在您的终端创建一个表,将规范化名称映射到公共记录名称并在执行此类过滤时加入您自己的表?
    • 我想我可以添加自己的表 - 我已经在本地重建了他们的数据库。然而,最大的问题是逗号、句点等巧妙的变体。我可以很容易地为保存的查询创建多个公司名称变体。我想运行一个命令来删除这些字符将是一个开始。我将如何为多行执行此操作?我假设一个实际的编辑命令后跟一个搜索会比尝试操作一个字符串,然后搜索,一遍又一遍地工作得更快。至于Lucene,那不是更容易吗?我觉得它应该是一个更好的选择。
    • 我将为此更多地研究 sphinx。我看到的一个问题是将非正常名称映射到正常名称。它需要事先手动构建,对吗?
    • 对于任何阅读本文的人,我发现了一个很酷的函数,可以清理所有非字母数字字符的字符串:stackoverflow.com/questions/6942973/…
    猜你喜欢
    • 2010-10-30
    • 2011-10-07
    • 2011-11-23
    • 1970-01-01
    • 2013-07-21
    • 2011-10-12
    • 1970-01-01
    • 2012-09-25
    • 2011-10-03
    相关资源
    最近更新 更多