ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是第二流行的企业搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。
我们建立一个网站或应用程序,并要添加搜索功能,令我们受打击的是:搜索工作是很难的。我们希望我们的搜索解决方案要快,我们希望有一个零配置和一个完全免费的搜索模式,我们希望能够简单地使用JSON通过HTTP的索引数据,我们希望我们的搜索服务器始终可用,我们希望能够一台开始并扩展到数百,我们要实时搜索,我们要简单的多租户,我们希望建立一个云的解决方案。Elasticsearch旨在解决所有这些问题和更多的问题。
elasticsearch 跟 MySQL 中定义资料格式的角色关系对照表如下
MySQL | Elasticsearch | 对比 |
Database | Index | 数据库 |
Table | Type | 表 |
Row | Document | 行 |
Column | Field | 列 |
Schema | Mappping | |
Index | Everything Indexed by default | |
SQL | Query DSL |
//Find tweets that have "elasticsearch" in their body field.
client.search({
index: 'wf_kjbg',
type: 'wf_kjbg',
body: {
query: {
match: {
Title: '计算机'
}
}
}
}).then(function (resp) {
var hits = resp.hits.hits;
}, function (err) {
console.trace(err.message);
});