get http://47.103.39.187:9200/_cat/indices?pretty 查看所有索引
get http://47.103.39.187:9200/_cluster/health 查看集群健康狀態(tài)
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 查詢所有數(shù)據(jù)
查詢10條數(shù)據(jù)
{
"query": {
"match_all": {}
}
,
"size": 10
}
http://47.103.39.187:9200/cswl_t_address_book/_count 條數(shù)
建索引時,如果需要對分詞進(jìn)行小寫,需要在analyzer里設(shè)置filter:lowercase,這個對type=text有效,type=keyword的需要設(shè)置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":"大批發(fā)客戶"
}
}
}
會對"大批發(fā)客戶"進(jìn)行分詞,可能分成"大批發(fā)" &"批發(fā)"&"客戶"這3個詞,再和倒排索引中的比較,和clientClassify建索引的時候用的分詞器是一樣的,因此大小寫都是能搜到的.
用term搜索的話:
{
"query":{
"term":{
"clientClassify.keyword":"大批發(fā)客戶"
}
}
}
列名后面加".keyword",關(guān)鍵詞要和ES document中的大小寫一樣且內(nèi)容一樣才能搜到. 如果索引中設(shè)置了normalizer:lowercase,那么客戶端搜索前要把關(guān)鍵詞轉(zhuǎn)成小寫.
term搜索不會對關(guān)鍵詞進(jìn)行分詞.