ES常用命令

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)行分詞.

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容