基于Lucene的分布式搜索方案,solr 还是 lucene+hadoop好点

发布于 2021-11-30 09:23:45 字数 368 浏览 838 评论 14

最近要实现一个分布式搜索框架,但不知道那种方案较好,经验较少。下面是一点初步了解,

第一种:采用 solr 的分布式功能。 由于最初设计的是index 的build 和search 是分离的,solr在这块就鸡肋了,所以这里主要采用solr的分布式功能,但有人提到 solr的分布式有一些缺点:没有全局的Lucene评分机制中的idf、lengthNorm因子,没有节点失效处理机制,而且性能上在亿级别?

第二种:采用 hadoop 和 Lucene。 主要考虑是 数据存储目前考虑用hbase , 本身 Lucene的 index build和search过程是分离的,hadoop 处理分布式方面的,但是就是提高了项目的复杂度。

各位谁有经验,指点指点?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(14

笑红尘 2021-12-04 15:44:34

elasticsearch  天然分布式,简单易用,同时支持节点失效,集群自动回复等等!elasticsearch.org

飘过的浮云 2021-12-04 15:44:34

elasticsearch 是基于lucene的分布式搜索,你可以选择

屌丝范 2021-12-04 15:44:33

嗯,对的,淘宝有个系统的方案和你最后讲的思路是一样的。但具体实现起来很复杂。 我最后放弃lucene+hadoop的方案了,采用的solrcloud,目前来说能够解决大部分问题

沦落红尘 2021-12-04 15:44:32

如果是纯粹做研究的话,是否可采用HBase+Lucene?

做个少女永远怀春 2021-12-04 15:44:31

回复
能否高速一下链接?

甜柠檬 2021-12-04 15:44:18

回复
纯粹研究的话,用这个方案都没问题,甚至能够支撑小规模级别的应用。但这个似乎没太大意义。

墨洒年华 2021-12-04 15:44:13

lucene索引数据放在哪里?

放在hbase,hbase是典型的key-value存储,不适合跨行事务。虽然在随机读取方面借助缓存有优势,但如果一次事务读取key太多,延迟也挺低的。我在hbase上面存储lucene index以及借助hbase机制重新设计lucene index,性能始终不是特别好。

如果lucene+hadoop,索引数据存储在hdfs,而hdfs目前并不适合大量小文件存储。lucene索引过程涉及大量索引小文件合并,而且hdfs设计目标也并不是一个实时流读写系统,因此对于lucene核心的near time index也是个挑战。

生搬硬凑在一起玩玩可以,产线恐怕还真要慎重。  

目前最成熟的都是通过hadoop mapreduce生成索引先存储在hdfs,然后从hdfs将索引下载到本地的solr索引目录,整个过程在于加快全量索引生成效率。

南汐寒笙箫 2021-12-04 15:42:46

solrcloud 这个咋样。   katta 呢?

狠疯拽 2021-12-04 15:41:51

嗯,谢了。这个之前看到过的。暂时放弃 lucene + hadoop,暂时用不上 lucene索引的mapreduce,现在solr 4.4已经支持 hadoop了,不过不太成熟

归属感 2021-12-04 15:40:47

http://www.zhihu.com/question/19793393

LZ这个问题曾经也尝试过,上面的讨论帖子对你应该有帮助,希望回答不是太晚

一人独醉 2021-12-04 15:38:29

刚入手solr 飘过 

旧伤慢歌 2021-12-04 15:38:02

solrcloud 你值得拥有

兮颜 2021-12-04 15:35:33

两者根本就是两回事,要么用这个,要么用那个,还怎么折中呀

无人问我粥可暖 2021-12-04 15:18:17

两种折中考虑,根据你实际业务

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文