发布于 2015-11-13 13:15:42 | 707 次阅读 | 评论: 0 | 来源: PHPERZ
这里有新鲜出炉的ElasticSearch权威指南,程序狗速度看过来!
ElasticSearch 基于Lucene的搜索引擎
ElasticSearch是一个基于Lucene构建的开源,分布式,RESTful搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。支持通过HTTP使用JSON进行数据索引。
我们建立一个网站或应用程序,并要添加搜索功能,令我们受打击的是:搜索工作是很难的。我们希望我们的搜索解决方案要快,我们希望有一个零配置和一个完全免费的搜索模式,我们希望能够简单地使用JSON通过HTTP的索引数据,我们希望我们的搜索服务器始终可用,我们希望能够一台开始并扩展到数百,我们要实时搜索,我们要简单的多租户,我们希望建立一个云的解决方案。Elasticsearch旨在解决所有这些问题和更多的。
一、
索引模板,定义模板,当新索引创建时,自动匹配,并应用定义的模板
新增索引模板(index templates)
我们新建一个索引模板template_1 设置它的主分片为1个。类型有type1且_source disabled
PUT /_template/template_1
{
"template": "t-*",
"settings": {
"number_of_shards":1
},
"mappings": {
"type1":{
"_source":{
"enabled":false
}
}
}
}
POST /t-1
GET /t-1/_mapping
{
"t-1": {
"mappings": {
"type1": {
"_source": {
"enabled": false
},
"properties": {}
}
}
}
}
例子:我们想再创建某个索引时,还为其创建alias
PUT /_template/template_2
{
"template": "s-*",
"settings": {
"number_of_shards":1
},
"aliases":{
"alias1":{
},
"{index}-alias":{
}
}
}
POST /s-1
GET /s-1
当创建多个索引模板时,且创建某个索引,被多个索引模板匹配,那么settings和mappings将会合并到一个配置中,并应用这个索引上,合并的顺序由索引模板的order属性来控制。order大的会覆盖之前的配置
PUT /_template/template_1
{
"template":"*",
"order":0,
"settings":{
"number_of_shards":1
},
"mappings":{
"type1":{
"_source":{
"enabled":false
}
}
}
}
PUT /_template/template_2
{
"template":"tt-*",
"order":1,
"settings":{
"number_of_shards":1
},
"mappings":{
"type1":{
"_source":{
"enabled":true
}
}
}
}
POST /tt-1 => 会被上述两个模板都匹配,对于_source属性 order=1的会覆盖order=0 即 enabled:true
文件配置:我们可以再 config/templates目录下添加json的配置文件