对solr, lucence的理解

是什么

lucence 是一套信息检索工具包, 使用lucence 能够更加方便地去构建一个查询应用

solr是一个给予lucence的成熟的企业级的搜索引擎框架, solr对lucence做了封装, 程序员的工作会少很多

可以做什么

在项目中, 如果遇到需要在海量数据中做查询的场景, 比如千万级别+, 这时候使用sql就比慢了, 这时候就可以用上solr, 比如商城中的商品查询, 比如酒店行业, 酒店的可用情况以及价格查询.

例子

去哪儿首页中, 想要查询A地区, 时间区间 B ~ C 内可用的 酒店情况, 实际上数据量是是非常大的, 20万商家 * 10 个渠道 * 4个房型 * 30天, 这种情况数据本身是千万级别的, 使用sql肯定会有性能上的 压力, 可以使用solr建立适当的索引,每种查询情况对应一种索引, 直接命中, 拿空间换时间, 提高查询效率. 具体的索引设置得查看相关文档, 结合具体的查询业务分析了.

怎么做

主要是建立更新全文索引, 使用solr提供的api做查询操作
https://www.ibm.com/developerworks/cn/java/j-solr1/index.html

pracitice

原理

相关

https://www.ibm.com/developerworks/cn/java/j-solr-lucene/index.html