日期:2014-05-17  浏览次数:20622 次

关于海量数据的模糊搜索问题
目前有数据表若干张类似:食品,日用品,体育用品等 每张表中的数据均达到5千万以上~~~  
现在需要进行模糊查询请问该如何处理?

------解决方案--------------------
LZ可参考下面的网址
http://wenwen.soso.com/z/q282793557.htm
------解决方案--------------------
了解下全文搜索是否适合你的搜索

其他的无非就是分表了,设法分得每个表小点,控制在2000万以下
------解决方案--------------------
sql server本身支持全文搜索

据我了解,Lunce的索引文件生成是可以自己控制的,可以做到对只新数据查询,只要新数据能单独查询出来。
如果一定要分表索引,那把表分细就很重要了
------解决方案--------------------
这么大的数据量,只能用全文搜索了
------解决方案--------------------
参考百度、谷歌的全文搜素技术
http://msdn.microsoft.com/zh-cn/library/ms142583.aspx希望对你有所帮助
------解决方案--------------------
探讨

那就是说只能进行全文搜索+水平表拆分了?

------解决方案--------------------
探讨

引用:
引用:

那就是说只能进行全文搜索+水平表拆分了?

水平拆分?
分成多个表好些。

为什么呢?

------解决方案--------------------
探讨

还有一个问题就是这些数据没有时间限制就是说不能只搜索出最近的数据而是每次抖索搜索出满足条件的所有数据~~~~
并且搜索的时候用户可以选择类别,比如用户同时选中食品,日用品,体育三个类型那么就要同时在这三张表中进行查询。数据量也会非常的大~~~~

------解决方案--------------------
探讨

目前是在需要模糊查询的字段上添加了非聚集索引 然后使用where charindex('xxxx',name)>0的方式查询。
在对一张5千多万的数据表用以上操作查询的时间大概为14秒~~~~

------解决方案--------------------
探讨

引用:
引用:

目前是在需要模糊查询的字段上添加了非聚集索引 然后使用where charindex('xxxx',name)>0的方式查询。
在对一张5千多万的数据表用以上操作查询的时间大概为14秒~~~~

where charindex('xxxx',name)>0 这种方式是利用不到索引的
还不如 like

你要尽可能的多分表,每……