[lucene] 你对 Lucne, SOLR 有什么不满
imjl
2010-01-16
面了几家公司,发现个有趣的现象。
似乎没人说 lucene 或者 solr 有什么不满地方,感觉他们都把它当圣经捧着。 不知道大家有什么不满,说错也不要紧,只要与之相关就行。 |
|
lzj0470
2010-01-16
lucene不能分布式,不适合应用到千万数据量之上(当然,你建立索引建立两个字段,它可能马马虎虎承受得了)。solr没用过。
|
|
luckaway
2010-01-16
lucene可以分布式的,实现Hadoop的搜索和RMI搜索都可以的
|
|
chester60
2010-01-21
每个term指向的doc list,排序是按照doc id来排的,不能选择让权重最高的doc排前面。能够这样做的话,检索速度会提高很多,特别是在大数据量,只取最匹配的N条记录的情况下。
|
|
lzj0470
2010-01-25
每个term指向的doc list,能举个例子吗?我在查看它的源代码的时候,它都是先取出它的符合要求的DOC,然后在排序,在返回。
|
|
chester60
2010-01-25
lucene里的doc list是这样保存的
docID term出现次数 1 1 2 1 …… 10000 4 排序时,是从doc1,doc2……逐个读到doc10000,然后term出现次数*term的IDF来计算分数。 事实上,如果你只要头100条数据的话,可以这样排 docID term出现次数 10000 4 …… 1 1 2 1 因为高权重的文档排在前面,所以只需要读取足够数量的前N条文档就可以了。如果前N条没有,则继续读下去。最坏情况下和lucene现在的模式速度一样。 |
|
imjl
2010-01-28
chester60 写道 每个term指向的doc list,排序是按照doc id来排的,不能选择让权重最高的doc排前面。能够这样做的话,检索速度会提高很多,特别是在大数据量,只取最匹配的N条记录的情况下。
这个很难做,,因为多个搜索条件下,要想快速获得结果,能做得就是最小化范围,然后排序。 如果关键词已知,那就直接cache了。也无所谓计算与否。 |