[solr ] Solr 单字切分时 大数据量性能问题???

wu_quanyin 2012-03-07
索引数据量:40G左右,总共有7000万条数据
因为业务需求,改成单字切分(StandarAnalyzer)

查找时,会根据时间段查找(如一个月内,一年内),使用Filter进行过滤,


这样一来查询的速度非常的慢,希望各位帮忙,制定解决方案。。。
fys124974704 2012-03-14
你把它当做一个db一样,过滤的时候考虑优先级试试。
wu_quanyin 2012-03-26
fys124974704 写道
你把它当做一个db一样,过滤的时候考虑优先级试试。

你这解决方案太抽象了。,。。。
wang_scu 2012-04-26
这个数据量应该算很大了 不知道你对响应时间有啥要求
有这样几个建议
1)term索引数据截段
2)查询终端 不要一次返回所有数据
3)全放内存吧
4)预热一下 如果查询语法不复杂 自己写一个好了
yuhao_1202 2012-05-05
1.不需要在查询中返回的数据,尽量不存储在索引中(常用的做法是索引中只存储ID,根据ID到数据库中查)

2. 用单字切分,估计也就不关心TermVector和Offset一类的信息了,因为单字切分会生成更多的TermVector和Offset,基本无法按自然语言的原理使用了。所以在schema.xml中将这些设为false

3. 调整filterCache大小。

4. 降低maxWarmingSearchers,内存中同时维持过多的searcher,会导致数据很容易崩溃。

5. 尽量不要用optimize了。

6. 用较新的Solr3.5可能会好点,内存占用相对较低。

7. 总是用rows限制返回行数

8. 构造查询时,总是带上统一的 时间filter语法

我们现在3000万数据,用的中文分词。性能目前还稳定。
Global site tag (gtag.js) - Google Analytics