我使用的DBMS是MySQL(MariaDB)。
表格方案如下:
CREATE TABLE MyTable (
ID INT PRIMARY KEY,
TEXT VARCHAR(200),
VALUE DECIMAL(15,2) )
该表有3亿行或更多。
我希望通过从文本中提取值来获取以下两个过程的结果(例如,SELECT VALUE FROM MyTable WHEN TEXT LIKE '%any keywords%';
SQL)(结果将在网络上显示)
是否可以仅使用SQL获取上述结果?如果是这样,性能如何? (所需的响应时间少于2秒)如果没有,你能推荐更好的方法吗?
如果有10个数据节点具有NoSQL
和Mahout
的组合,是否可以在2秒内从每个查询中获取结果,尤其是每秒有5个查询?如果没有,需要多少个数据节点?
所以,如果您知道我目前遇到的麻烦的任何解决方案,请向我推荐系统架构。
答案 0 :(得分:1)
评论时间有点长。
你的期望有点极端。使用大量自定义代码和具有大量处理器和大量内存的系统,可能会满足要求。
首先,您似乎并不了解k-means的工作原理。什么是距离指标?
其次,您没有解释为什么需要为每个查询重新聚类记录。通常,群集更多是离线活动,而评分(或分配群集)是在线的。
最后,我不建议在原始文本上进行k-means聚类。还有其他用于群集文本的算法,这些算法可能更适合您的实际问题。我建议你学习一些关于数据挖掘的知识(什么是k-means算法?什么是有用的?什么是期望最大化聚类?什么是奇异值分解?)我还建议你学习文本分析(什么标记化是什么?什么是词干?什么是词袋方法?什么是语义分析?)。你的问题表明对这两个主题缺乏了解。