gpt4 book ai didi

mysql - Lucene/Sphinx/Mysql 的 100-1000+ 项搜索

转载 作者:行者123 更新时间:2023-11-28 23:45:01 24 4
gpt4 key购买 nike

我目前正在构建一个数据库来监控公司记录。我需要针对将列出公司名称的表中的单个列搜索许多(我们正在谈论完成时可能有几千个)公司名称。我目前使用以下基本的 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。是我需要查找的许多公司名称的所有可能表示形式。

MATCH 会起作用吗?使用 Lucene 或 Sphinx 会永远耗费这样一个巨大的查询吗?我当前的 LIKE 搜索是通过丢弃任何领先的通配符运算符来“优化”的……但并不智能!

最佳答案

My primary issue revolves around minor issues. For example: Company1, Inc. Company1 Inc. The Company1 Inc. The Company1 Incorporated. are all possible representations of many company names I need to find.

通常,您会在尝试对公司名称的可变表现形式进行模式匹配时遇到问题。您很有可能会产生误报。例如,“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.

The biggest issue however is the sleight variations like commas, periods, etc. I can create multiple company name variations fairly easily

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

关于mysql - Lucene/Sphinx/Mysql 的 100-1000+ 项搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33746679/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com