如题:1.问题1:如何在大数据量上提升查询速度,目前我项目中8亿个文档数,100GB索引文件。查询单一组词平均需要7秒左右,结果一般在1亿条左右(查询的中文)。求如何提升速度。2,问题2: 关于lucene 3.3 后的分组统计问题。尤其是BlockGroupingCollector.java这个类的使用,关于该类涉及到的lastDocInBlock 这个filter 要怎么在建立索引的时候控制。
求真正的LUCENE 高手帮忙!!!项目急需。
解决方案 »
- 梅花雪1.0怎么可以改动树显示的颜色
- java.lang.NullPointerException
- webwork参数问题
- spring+Hibermate 的问题!
- webservice 怎样用wsdl生成客户端文件 会用的大哥们帮帮我吧
- 编译问题
- struts的配置文件WEB.XML的问题
- 高分求助!!热心的朋友顶一下,也给分!来的都有
- 高手指教,使用struts1.0编写程序,调试通过,为什么jsp提交后,文本框、密码框内还存有数据,刷新也消除不了,
- 初学java ,《Java 编程思想--Thinking in JAVA》和《Java编程思想(第2版)》,大家推荐一下
- struts2程序报错ognl-2.7.3jar has no source attachment
- 关于java内存泄露的问题
我理解的是用户提交的查询内容可以切分为多个词。如果是OR,那就很容易解决,如果是AND,处理起来相对麻烦。1. 100G索引文件切分成 10个。 检索 10 个 subSearcher, 之后将结果归并。可以参考一下 ParallelMultiSearcher。
至于你说的评分不知道指的是什么,规则一样的情况下,针对某一个文档的“评分”不应该出现不同。2. AND关系可以试一下结果集再查询。性能和精确性是有一定矛盾的,可能需要放弃一定的精确性还获得性能的提高。抛开词频 、 权重等附加信息, 切分词<->文档ID 的对应关系很简单直接,可以参考一下数据库查询优化的相关技巧。
首先,很感谢deltatang的回复,真的。你说这个切分100G的索引为10个索引,LUCENE有这样的API吗?
你说的部署到多台上是,使用的是RMI+lucene的技术吗?
你说的归并,是指在ParallelMultiSearcher这个类里有么?