论坛首页 Java企业应用论坛

[请教]如何高效实现应用metadata,tagging?

浏览 2282 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2008-04-19  

项目中有很多数据,根据不同的metadata或者tag来把他们归类。

比如:

tag 学校,数据有xx小学,xxx中学,等等

tag 餐馆,数据有xx餐馆,xxx酒店

tag 建筑,数据有xx小学,xx餐馆

在数据量很多,tag也很多的情况下,(很多many-to-many关系),如何高效实现这种数据结构?

如何在读取数据的时候可以做到很高效?

我可以创建很多hashmap,每个key是tag,value是数据对象list或者array,但如果查找与好几个tag都有关系的数据,这不是个很有效的实现。当然可以从数据库中查询,然后缓存,但问题是,tag的组合很多,导致缓存里的数据类也很多。

项目的要求是尽可能把数据存到内存或者cache里面,然后高效的读取。

我没做过类似metadata/tagging的项目,请有经验有想法的朋友不吝赐教。谢谢啦!

这个不算新手贴吧。。。如果是的话,请在投票前指明出路。。。拜谢~~~~

   发表时间:2008-04-19  
可以用全文检索的思路去解决这个问题,对数据进行全文索引,用tag作为分词的词库,搜索的时候很简单,标准的全文检索,这个办法的检索速度是非常快的,也可以支持庞大的tag和数据量,还可以很简单的实现你说的多tag搜索。
0 请登录后投票
   发表时间:2008-04-20  
谢谢robbin,fulltext index是个思路。
问题是,这个项目的数据来自很多RSS(实时realtime的)。
所以数据没有经过数据库。
所以需要一个在内存里的数据结构,实现方法来做到tagging及高效读取。
0 请登录后投票
   发表时间:2008-04-20  
lordhong 写道
谢谢robbin,fulltext index是个思路。
问题是,这个项目的数据来自很多RSS(实时realtime的)。
所以数据没有经过数据库。
所以需要一个在内存里的数据结构,实现方法来做到tagging及高效读取。


fulltext本身和数据库没啥关系。你从RSS抓取数据过来经过一道fulltext index工序就啥都有了,这本身就是readtime的。
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics