0

我将分批处理 10,000-50,000 条记录,每条记录大约有 200-400 个字符。我预计我可以拥有的搜索词数量不会超过 1500 个(都与本地企业相关)。

我想创建一个函数,将结构化标签与术语列表进行比较以标记数据。

这些条款基于业务描述。因此,例如,a [Jazz Bar][Nightclub][Sports Bar][Wine Bar]都对应于 的查询[Bar]

通常这个数据有某种现有的标签,所以我也可以为第一遍创建一个严格的层次结构,然后在没有明确的现有标签的情况下进行第二遍。

实现这一点的最性能敏感的方法是什么?我可以有一个包含所有关键字的表,并尝试将它们与每条数据进行匹配。这在我匹配现有标签的情况下很简单,在处理自由文本时不那么简单。

我正在使用 Heroku/Postgresql

4

1 回答 1

0

使用Sphinx搜索引擎和ThinkingSphinx Ruby gem 是一个非常安全的选择。是的,有一些配置开销,但我还没有找到 Sphinx 失败的场景。:-)

如果您有 30-60 分钟的时间进行设置,请尝试一下。我一直在使用 Sphinx 在包含 600,000 多条记录的数据库表中搜索复杂查询(3 个单独的搜索条件 + 2 个单独的字段分组/排序),我在 0.625 秒内得到了结果,这一点也不差,我确信比你用纯 Ruby 代码自己完成的任何事情都要好得多。

于 2012-11-08T23:15:19.560 回答