lucene哪个版本支持TB级数据索引?支持动态批量索引更新吗?
至少lucene3.0以上版本,需要了解:
动态索引更新的周期是多少分钟?
TB级索引平均速率是多少?
文本索引比?
TB级检索平均响应时间?
支持语种有什么?如中、日、韩、中英文混合
支持的编码有什么?如GIG5、unicode、utf-8 、CJK
支持的文档格式有什么?如PDF、word、HTML、XML
查全率?
查准率?
支持的数据格式:视频、音频、图像索引和查询吗?
最好是自己实测数据,用的测试环境是什么?文本集是什么?如果是查的资料,最好能给出文献出处,但能给什么就给什么
[解决办法]
lucene是一个可扩展的框架,它本身算不得一个搜索引擎,就是个索引框架, 然后默认放了几个默认实现以使得可以运行. 真正的使用是需要自己去实现那些模块而不是用默认的那些.
动态索引更新的周期取决于你的硬件和数据的总量和复杂度.
TB级索引平均速率同上. 同时以上两点受到分析器和 "文件夹"的影响很大, 使用不同的 "文件夹" 实现,性能可以有一个数量级的差距(内存文件夹处理好频繁GC问题,比文件系统文件夹要快得多),使用不同分析器性能也可以有巨大差异(因为不同分析器策略生成完全不同的倒排表,索引量也相差很多,我实测最大差异超过50%)
文本索引比取决于你创建索引时各个字段选项.
平均响应时间取决于分析器选择和硬件性能.
不存在支持语种和编码问题, 如果出现,那是你用错了.
支持的文档格式有纯文本(包含xml,html等本质上就上一个字符串的东西),数据库数据, pdf等,但是是完全可扩展的,实际上并没有限制,只要自己实现对目标格式的适配,什么excel之类都可以实现(需要自己写代码,当然你找得到其他第三方的包也行)
查全查准这是你这个使用的人的代码的事情了. 基于倒排表算法只要全部建了索引就全部都有. 准这个还是分析器决定的.
总之一句话,你的所有问题都是没有意义的, 在你实际应用之前. 另外记得一句话,lucene是个框架,框架上一个一个小东西它只是帮你默认实现了一个简单版, 真正大应用时,你需要自己实现或使用其他第三方的包.
对于中文应用, 一个好的分析器是必须的.(自带的中文分析器和标准分析器,简单分析器都是非常粗糙的,中文分析器除去注释和花括号,总共3行代码,加两个辅助的类总共不过两三百行, 你觉得分析中文这么容易么? 你能对它有多少期望呢?)好在现在已经有不少不错的中文分析器实现 (习惯上把分析器 称为 "分词" 算法..)
lucene虽然开箱即用,但是只是作为一个其他应用的小小辅助,如果真拿它作为一款产品的核心功能,分析器,收集器等部位都是要自己去实现的,只是不需要太害怕,lucene设计得很好,很容易实现你要的东西,继承一个积累实现几个函数就是了.
[解决办法]
Lucene支持一个全文检索,其他的多媒体都不支持的。
另外,Lucene并非是一个完整的搜索引擎,如果自己基于Lucene二次开发,可能要做的工作很多很多,可以参考基于Lucene实现的一个搜索引擎框架Solr,支持分布式(SolrCloud)索引与检索,而且可以使用它进行性能评测。
应该说,很多公司都可以非常容易地使用Solr搭建自己的搜索系统,或者实现自己的基于搜索的系统/平台。
资料,建议看官网wiki:
http://lucene.apache.org/core/quickstart.html
http://wiki.apache.org/solr
[解决办法]
你说的这些,都可以做到。
不过,最好选择最适应你应用或需求的方式。
没有全能的工具,只有最适合的工具。
[解决办法]
索引一般不大,不会到TB及,一般GB级别就能支撑不少数据量了,索引记录的信息是便于在查找
[解决办法]
分布式索引,solr4.0提供了分布式的功能