get http://47.103.39.187:9200/_cat/indices?pretty 查看所有索引
get http://47.103.39.187:9200/_cluster/health 查看集群健康状态
get http://47.103.39.187:9200/cswl_t_address_book 看一个索引的mapping/setting等信息
get http://47.103.39.187:9200/cswl_t_address_book/_mapping
get http://47.103.39.187:9200/cswl_t_address_book/_settings
get http://47.103.39.187:9200/cswl_t_address_book/_search 查询所有数据
查询10条数据
{
"query": {
"match_all": {}
}
,
"size": 10
}
http://47.103.39.187:9200/cswl_t_address_book/_count 条数
建索引时,如果需要对分词进行小写,需要在analyzer里设置filter:lowercase,这个对type=text有效,type=keyword的需要设置normalizer,如下:
{
"settings": {
"index.max_ngram_diff": 7,
"analysis": {
"analyzer": {
"ngram_analyzer": {
"tokenizer": "ngram_tokenizer",
"filter":["lowercase"]
}
},
"tokenizer": {
"ngram_tokenizer": {
"type": "ngram",
"min_gram": 1,
"max_gram": 8
}
},
"normalizer":{
"lowercase":{
"type":"custom",
"filter":["lowercase"]
}
}
},
"number_of_replicas": 1
},
"mappings": {
"dynamic": "strict",
"properties": {
"clientClassify": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256,
"normalizer":"lowercase"
}
},
"analyzer": "ngram_analyzer"
},
"orderStatus": {
"type": "keyword",
"normalizer":"lowercase"
},
}
}
}
text下面用fields把text的倒排索引invert掉,这样可以通过clientClassify.keyword搜索整个值,也可以排序了.
在查询的时候,如果用:
{
"query":{
"match":{
"clientClassify":"大批发客户"
}
}
}
会对"大批发客户"进行分词,可能分成"大批发" &"批发"&"客户"这3个词,再和倒排索引中的比较,和clientClassify建索引的时候用的分词器是一样的,因此大小写都是能搜到的.
用term搜索的话:
{
"query":{
"term":{
"clientClassify.keyword":"大批发客户"
}
}
}
列名后面加".keyword",关键词要和ES document中的大小写一样且内容一样才能搜到. 如果索引中设置了normalizer:lowercase,那么客户端搜索前要把关键词转成小写.
term搜索不会对关键词进行分词.