solr存储原理
Solr是一个用java开发的基于lucene引擎的 全文搜索 平台,原理是倒排索引,从关键字到文档的过程,Solr的资源都是以Doc为对象进行存储的,每个文档都由一系列的field构成,每个field表示资源的一个属性,文档的fied可以被索引,用于提高性能的搜索效率,一般情况下文档都包含一个能唯一表示该文档的id字段。
elasticsearch哪国开发的
美国开发的。
ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。
Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。
官方客户端在Java、.NET(C#)、PHP、Python、Apache Groovy、Ruby和许多其他语言中都是可用的。根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是Apache Solr,也是基于Lucene。
ES原理
ES是基于Lucene的搜索服务器,它提供了一个分布式多用户能力的全问搜索引擎,且ES支持RestFulweb风格的url访问。ES是基于Java开发的开源搜索引擎,设计用于云计算,能够达到实时搜索,稳定、可靠、快速。此外,ES还提供了数据聚合分析功能,但在数据分析方面,es的时效性不是很理想,在企业应用中一般还是用于搜索。ES自2016年起已经超过Solr等,称为排名第一的搜索引擎应用。
ES、Lucene、solr对比:
Luence是Apache基于Java编写的信息搜索工具包(jar包),它包含了索引结构、读写索引工具、相关性工具、排序等功能,因此Lucene的使用需要我们进一步开发搜索引擎系统, 如果数据获取、解析、分词等
Solr 是一个有HTTP接口的基于Lucene的查询服务器,是一个搜索引擎系统,系统封装了很多lucene细节,Solr可以直接利用HTTP GET/POST 请求去查询,维护修改索引。Solr利用zookeeper进行分布式管理,它的实现更加全面,官方提供的功能更多。