n******7 发帖数: 12463 | 1 没用过NoSQL,现在遇到两个问题,都需要储存、查询大量的大数据,考虑是不是可以
用上NoSQL
问题大概是这样的,我有很多docs,每个doc有很多words,很多words出现频率很高,
words在一个doc里面出现顺序不重要。docs本身有一些注释
我希望有个database可以
1. 存储这些docs。我琢磨做成 word1 -> {doc1:count,doc2:count2} 这样的
2. 存储一个新doc时,可以update已有的key-> value 列表。如果遇到新的word,就建
立新的key-> value 关联
3. 比较docs。这个比较麻烦。比如给一个doc,我想很快知道哪些docs跟它有一样的
key。如果有必要,我还想查询substring。比如有个文档有mitbbs这个词,可能我想把
mit和bbs这两个key也包括进来
我本来觉得用SQL应该可以搞定,但是这两个问题里面,可能的词汇表都很大(>10^9)
。 问题1稍好点,文档之间很多高频词是差不多的,问题2词汇表更大,文档之间的关
联更弱。这个用NoSQL有戏吗?看了一下Redis,好像就是个只有两个column的table? |
x*******1 发帖数: 28835 | 2 有戏阿。
3个colume就行
hash_key
doc_id:word
range_key
word
attribute
appear #
再建一个GSI (searching index)
hash——key
word
range-key
doc_id:word
appear # |
g*****g 发帖数: 34805 | 3 Elastic Search.
【在 n******7 的大作中提到】 : 没用过NoSQL,现在遇到两个问题,都需要储存、查询大量的大数据,考虑是不是可以 : 用上NoSQL : 问题大概是这样的,我有很多docs,每个doc有很多words,很多words出现频率很高, : words在一个doc里面出现顺序不重要。docs本身有一些注释 : 我希望有个database可以 : 1. 存储这些docs。我琢磨做成 word1 -> {doc1:count,doc2:count2} 这样的 : 2. 存储一个新doc时,可以update已有的key-> value 列表。如果遇到新的word,就建 : 立新的key-> value 关联 : 3. 比较docs。这个比较麻烦。比如给一个doc,我想很快知道哪些docs跟它有一样的 : key。如果有必要,我还想查询substring。比如有个文档有mitbbs这个词,可能我想把
|
n******7 发帖数: 12463 | 4 谢谢两位,我再琢磨一下
elastic search不知道是啥,得google了 |
B*****g 发帖数: 34098 | 5 和solr比有啥优势吗?
【在 g*****g 的大作中提到】 : Elastic Search.
|