Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/348.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 关键字搜索的数据结构建议_Java_Lucene_Keyword - Fatal编程技术网

Java 关键字搜索的数据结构建议

Java 关键字搜索的数据结构建议,java,lucene,keyword,Java,Lucene,Keyword,我需要建立一个数据结构,有效地提供关键字搜索功能 我的衡量标准是: 大约50万种产品 每个产品大约有20多个关键词(猜测) 产品由大约10位数字的ID标识,但可以是任何未来的ASCII码 如果可能的话,我想尝试将数据结构放入内存中。我将在服务器上,因此我可以假设一些重要的内存可用性 速度很重要。像一样使用数据库查询将不是一个可接受的解决方案 对数据结构有什么想法吗 我的想法: TrieMap 对于关键词来说非常有效,但是需要有一个产品ID列表挂在任何严重内存不足的叶子上。有什么办法可以帮上忙吗

我需要建立一个数据结构,有效地提供关键字搜索功能

我的衡量标准是:

  • 大约50万种产品
  • 每个产品大约有20多个关键词(猜测)
  • 产品由大约10位数字的ID标识,但可以是任何未来的ASCII码
  • 如果可能的话,我想尝试将数据结构放入内存中。我将在服务器上,因此我可以假设一些重要的内存可用性

    速度很重要。像一样使用
    数据库查询将不是一个可接受的解决方案

    对数据结构有什么想法吗

    我的想法:

    TrieMap

    对于关键词来说非常有效,但是需要有一个产品ID列表挂在任何严重内存不足的叶子上。有什么办法可以帮上忙吗

    压缩

    各种压缩方案浮现在脑海中,但没有一个具有重要价值

    还有人把这样的东西放在一起吗?你能分享一下你的经历吗


    数据可能会改变,但不会经常改变。每天重建结构以适应变化是合理的。

    您是否考虑过使用内存或作为文件系统索引


    它的速度非常快,并且有很大的空间来满足未来可能出现的进一步需求。

    正在研究如何使用lucene实现这一点,但谷歌搜索似乎是最好的选择-谢谢!!我花了半天的时间建立了一个有效的索引,看起来用Lucene完全取代现有的可怕的搜索机制只需要花一点时间。一个真正出色的软件包-只要它继续保持稳定,就像乍一看一样。顺便说一句-有一个优秀的Lucene教程文档。