0

我们正在寻找在 PHP/MySQL 环境中使用尽可能少的资源的数据库中开发搜索例程的最佳方法。

我们处理外部信息源,这些信息往往会不时发生微妙的变化或具有新的状态值。这意味着我们仅限于添加自己的数字键并通过常规 SQL 搜索进行搜索。

我们正在考虑使用 MD5 创建一个唯一的字符串,而不是搜索...

WHERE DATE = '12/12/2012 09:00' 
AND TYPE = 'new alert' 
AND loc = 'rear door' 
AND subtype = 'pir hit' 
AND lat = 39.3343 
AND lon = 145.234 
AND current STATUS = 'active' 
AND Support = 'en-route';

我们从我们感兴趣的字段中创建一个 MD5,例如 ef6d3c25ac9362413fed2b4d3f65962a,例如 12/12/2012 09:00~new alert~rear door~pir hit~-39.3343~145.234~active~en-route 然后我们可以搜索只是数据库中的这个 MD5 而不是单独的字段。

我们也有兴趣研究使用包含最新 MD5 列表的文件,而不是不断地询问数据库,因为我们最多可能有 1100 多个工作在提要中。更常见的是大约 60 个工作岗位。

我们对您认为最佳解决方案的想法和原因感兴趣。

4

1 回答 1

1

我会选择 Apache Solr 作为解决方案。分面搜索将满足您的所有需求。复制/索引您的数据不会花费太多精力。我们已经在我们公司的项目中实现了这个引擎,对名称/日期/特征/供应商/分销商/等进行搜索,它就像一个魅力。虽然 md5 over 胶合字符串在一段时间以来一直是一种解决方案。无论如何,这取决于您拥有的时间以及您当前的解决方案如何处理这种情况。

于 2013-03-02T02:36:24.980 回答