需要设计字符串搜索的建议

时间:2012-10-03 15:00:32

标签: java sql string search memcached

这是我的情况。我有一张包含以下数据的表格。

Property_name Property_value
--------------------------------------
prob_name_1   ,sdfsdf@ce.o,jfgj@ce.o, 
prob_name_2   ,sdfsf@ce.o,dsf@ce.o, 
prob_name_3   ,sdfsfss@ce.o,sdfsdf@ce.o, 
.              .
.              .
.              .
prob_name_n    ,sdfsfss@ce.o,sdfsdf@ce.o, 

此表格中可以有多行,电子邮件将以逗号分隔的方式存储。 Property_value将保持数据更新其最大值(2k)。我在最后一个属性中没有“n”,如果需要我需要找到。

我的查询是, 我需要在此数据中搜索电子邮件。由于我们使用memcache工具来缓存这些数据(它存储在Hashtable<String, String>中),因此我们不使用查询。我的想法很少。请建议我一个更好的。

  1. HashMap - property_name和属性值的密钥对值。迭代它并检查值,直到找到它。
  2. 迭代所有行并搜索直到找到它。

1 个答案:

答案 0 :(得分:2)

由于电子邮件地址不是数字可订购的,因此您的第二个选择将是可行的方式。如果你要说的是你需要找到给定property_value的property_name,那就是。

如果您的列表可以以任何方式订购,您可以使用二进制搜索方法。但是,订购电子邮件地址的唯一方法是按字母顺序排列,我认为这需要更长的时间。