开发者社区> 问答> 正文

数据结构设计和频繁读写的问题:报错

现有需求能找出同义词,比如使用 电脑 这个词,等于使用 计算机 ,Computer,PC 等词语,其中的任何一个词语也等同于其他的词语,对于同义词的这个词库用途应该是频繁读取,不知道用什么方式储存读起来比较快速,而且占用内存较小。

展开
收起
kun坤 2020-06-07 14:48:10 804 0
1 条回答
写回答
取消 提交回答
  • oracle 的话貌似直接有个内存表。。。
    ######貌似我理解错了 问的是怎么读取关联的记录速度快######还从没有遇到这种业务,你做######

    lucene,"|电脑|计算机|Computer|PC|",分词问题会导致查询到多个,那就再对于每条记录,看是否存在"|XXX|",取到一行,拆分。数据库做这个读取,个人感觉是不太好的。
    内存中再分一块区域,存放一些用得多的就是,这个可以设置个策略,就是缓存咯。

    ######

    主要就是不知道这种词语和同义词之间的关联用什么来表示,如果要表示的话,

    电脑:计算机

    计算机:电脑

    电脑:PC

    PC:电脑

    这样要弄很多吗?怎么储存,存到文件里,读起来效率不知道怎么样,存到内存的话,TOMCAT  容易崩溃。

    ######再来个“计算机:pc”,这样就是要一个网状结构了,查询会累死。######

    引用来自“杨焱”的答案

    主要就是不知道这种词语和同义词之间的关联用什么来表示,如果要表示的话,

    电脑:计算机

    计算机:电脑

    电脑:PC

    PC:电脑

    这样要弄很多吗?怎么储存,存到文件里,读起来效率不知道怎么样,存到内存的话,TOMCAT  容易崩溃。

    一行不就搞定了么,我上面写的。lucene不慢的好吧,有的时候快过数据库查询。。。
    ######具体怎么做?lucene 用的同义词是 WordNet 还是什么NetWord,是英文的。中文的不知道有没有这种的东西,查了查,查不到。######

    查找之王 : hash. IO速度之王: 内存.(寄存器不合适....)

      时间和空间,总要牺牲一样, 你要是PC, 电脑,computer只存一样的话,建立它们的关系肯定会有搜索或其他时间上的消耗. 个人倾向 牺牲空间比较合适.具体结构自己设计.哈哈.

    ######网状结构改成线性结构。######

    词                    编号
    pc                    001
    计算机             001  
    电脑                001

    输入任何一个词就可以根据编号找出它的同义词
       

    2020-06-07 14:48:14
    赞同 展开评论 打赏
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
如何使用Tair增强数据结构构建丰富在线实时场景 立即下载
Apache Flink 流式应用中状态的数据结构定义升级 立即下载
HBase2.0重新定义小对象实时存取 立即下载