常⻅的搜索引擎,Lucene,Solr,Elasticsearch ### ### Lucene Lucene是⼀个Java全⽂搜索引擎,完全⽤Java编写。Lucene不是⼀个完整的应⽤程序,⽽是⼀个代码库和API,可以很容易地⽤于向应⽤程序添加搜索功能。 ### 通过简单的API提供强⼤的功能 1. 可扩展的⾼性能索引 3. 强⼤,准确,⾼效的搜索算法 5. 跨平台解决⽅案 ### Apache软件基⾦会 1. 在Apache软件基⾦会提供的开源软件项⽬的Apache社区的⽀持。 3. 但是Lucene只是⼀个框架,要充分利⽤它的功能,需要使⽤java,并且在程序中集成 5. Lucene。需要很多的学习了解,才能明⽩它是如何运⾏的,熟练运⽤Lucene确实⾮常复杂。 ### ### Solr Solr是⼀个基于Lucene的Java库构建的开源搜索平台。它以⽤户友好的⽅式提供Apache Lucene的搜索功能。它是⼀个成熟的产品,拥有强⼤⽽⼴泛的⽤户社区。它能提供分布式索引,复制,负载均衡查询以及⾃动故障转移和恢复。如果它被正确部署然后管理得好,它就能够成为⼀个⾼度可靠,可扩展且容错的搜索引擎。很多互联⽹巨头,如Netflix,eBay,Instagram和亚⻢逊都使⽤Solr,因为它能够索引和搜索多个站点。 ### 强⼤的功能 1. 全⽂搜索 3. 突出 5. 分⾯搜索 7. 实时索引 9. 动态群集 11. 数据库集成 13. NoSQL功能和丰富的⽂档处理 ### ### Elasticsearch Elasticsearch是⼀个开源,是⼀个基于Apache Lucene库构建的Restful搜索引擎. Elasticsearch是在Solr之后⼏年推出的。它提供了⼀个分布式,多租户能⼒的全⽂搜索引擎,具有HTTP Web界⾯(REST)和⽆架构JSON⽂档。Elasticsearch的官⽅客户端库提供Java,Groovy,PHP,Ruby,Perl,Python,.NET和Javascript。 ### 主要功能 1. 分布式搜索 3. 数据分析 5. 分组和聚合 ### 应⽤场景 1. 维基百科 3. Stack Overflow 5. GitHub 7. 电商⽹站 9. ⽇志数据分析 11. 商品价格监控⽹站 13. BI系统 15. 站内搜索