1)string类型被去掉了,添加了text和keyword,keyword是不分词,text是分词
创建索引 user
PUT userindex
{
}
创建mapping
PUT userindex/_mapping/user
{
"properties": {
"name": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword"
}
}
}
}
}
查看分词:
POST userindex/_analyze
{
"field": "name",
"text": "zhang cai yan"
}
POST userindex/_analyze
{
"field": "name.keyword",
"text": "zhang cai yan"
}
添加数据
POST userindex/user
{
"name": "zhang san"
}
搜索数据:
GET userindex/_search
{
"query": {
"match": {
"name.keyword": "zhang"
}
}
}
聚合: size 为 0 废除,如果显示全部可以不设置size
GET userindex/_search
{
"aggregations": {
"name": {
"terms": {
"field": "name.keyword",
"size" : 0
}
}
}
}
query_cache 废除,该设置改为配置文件配置,通过index.queries.cache.enabled和indices.cache.query.size
{
"query": {
"match": {
"name.keyword": "zhang"
}
},
"query_cache": true
}
fields参数废除,可以使用_source代替fields,该参数es2、es5、es6通用
GET userindex/_search
{
"_source": ["name"],
"query": {
"match" : {
"name": "zhang"
}
}
}
reindex 拷贝数据
POST _reindex
{
"source": {
"index": "fofapro",
"type": "service",
"remote": {
"host": "http://10.10.10.87:9200"
}
},
"dest": {
"index": "fofapro_service",
"type": "service"
}
}
size 不能超过10000条,如下
GET fofapro_service/service/_search
{
"size": 10000,
"_source": ["protocol"],
"query": {
"bool": {
"must": [
{
"match_all": {}
}
]
}
}
}
1)scroll 分片功能(slice),一个scroll分成多个分片,并发执行
2)profile: true 性能监控
https://www.elastic.co/guide/en/elasticsearch/reference/master/search-profile.html
3)search after 传统的from+size效率很低,尤其是深度翻页,es2没有做数量限制,es5开始就做了限制,size不能超过10000条,超过这个限制后可以使用search after
4) 支持ipv6
5) _all 在es6里不能使用了,此外es6去掉了搜索时的默认分词器,之前是空格,所以{"query_string"=>{"query"=>"zenid=\"\""}}这种语句出问题了,因为没有指定搜索分词器导致空字符串也可以搜索,应该写为{"query_string"=>{"query"=>"zenid=\"\"", "analyzer": "whitespace"}}
创建索引 user
PUT userindex
{
}
创建mapping
PUT userindex/_mapping/user
{
"properties": {
"name": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword"
}
}
}
}
}
查看分词:
POST userindex/_analyze
{
"field": "name",
"text": "zhang cai yan"
}
POST userindex/_analyze
{
"field": "name.keyword",
"text": "zhang cai yan"
}
添加数据
POST userindex/user
{
"name": "zhang san"
}
搜索数据:
GET userindex/_search
{
"query": {
"match": {
"name.keyword": "zhang"
}
}
}
聚合: size 为 0 废除,如果显示全部可以不设置size
GET userindex/_search
{
"aggregations": {
"name": {
"terms": {
"field": "name.keyword",
"size" : 0
}
}
}
}
query_cache 废除,该设置改为配置文件配置,通过index.queries.cache.enabled和indices.cache.query.size
{
"query": {
"match": {
"name.keyword": "zhang"
}
},
"query_cache": true
}
fields参数废除,可以使用_source代替fields,该参数es2、es5、es6通用
GET userindex/_search
{
"_source": ["name"],
"query": {
"match" : {
"name": "zhang"
}
}
}
reindex 拷贝数据
POST _reindex
{
"source": {
"index": "fofapro",
"type": "service",
"remote": {
"host": "http://10.10.10.87:9200"
}
},
"dest": {
"index": "fofapro_service",
"type": "service"
}
}
size 不能超过10000条,如下
GET fofapro_service/service/_search
{
"size": 10000,
"_source": ["protocol"],
"query": {
"bool": {
"must": [
{
"match_all": {}
}
]
}
}
}
1)scroll 分片功能(slice),一个scroll分成多个分片,并发执行
2)profile: true 性能监控
https://www.elastic.co/guide/en/elasticsearch/reference/master/search-profile.html
3)search after 传统的from+size效率很低,尤其是深度翻页,es2没有做数量限制,es5开始就做了限制,size不能超过10000条,超过这个限制后可以使用search after
4) 支持ipv6
5) _all 在es6里不能使用了,此外es6去掉了搜索时的默认分词器,之前是空格,所以{"query_string"=>{"query"=>"zenid=\"\""}}这种语句出问题了,因为没有指定搜索分词器导致空字符串也可以搜索,应该写为{"query_string"=>{"query"=>"zenid=\"\"", "analyzer": "whitespace"}}