【发布时间】: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 搜索通过丢弃任何领先的通配符运算符来“优化”......但几乎没有智能!
【问题讨论】: