1、http端口默認爲9200,tcp端口默認爲9300,默認情況下elastic只允許本地訪問,開啓遠程訪問需設置elasticsearch.yml中的network.host;
2、複製副本只有在集羣狀態爲green纔可用,如果集羣狀態爲red,則將會有些數據無法訪問;
3、索引文檔,使用put請求並制定唯一ID,請求體使用json格式的key-value格式即可,若索引中無記錄則新增,存在則更新;
4、文檔批量索引要比單個索引快很多,不過這也取決於文檔的大小及複雜程度,索引及搜索的負載以及系統可用的資源;
curl -H "Content-Type: application/json" -XPOST "http://127.0.0.1:9200/bank/_bulk?pretty&refresh" --data-binary "@accounts.json"
5、默認查詢僅返回前10條記錄,若想指定返回條數,指定參數from和size;
GET /bank/_search
{
"query": {
"match_all": {}
},
"sort": [
{
"account_number": {
"order": "desc"
}
}
],
"from": 0,
"size": 20
}
6、若想查詢指定的字典值,可以使用match語句,指定單個單詞;若想查詢詞組的話,可以使用match_phase;若想構造更復雜的查詢的話,可以使用bool查詢,其中可以指定必須滿足條件(must match),可滿足條件(should match),必須不滿足(must not match);
7、must/should/must_not在bool查詢中作爲查詢子句,其中must或should查詢子句會貢獻文檔查詢相關分數,而must_not只作爲查詢過濾條件,不參與文檔分數評估;除此之外,bool查詢中還可以直接使用過濾器查詢;
8、聚合函數可以組合成更復雜的查詢語句,實現更復雜的統計功能;
9、可以使用terms聚合的內嵌聚合結果進行排序來取代針對結果的sort排序;
10、es啓動時可以指定以守護進程啓動並記錄pid,同時也可在啓動時指定環境參數;
$ ./bin/elasticsearch -d -p pid
$ ./bin/elasticsearch -d -Ecluster.name=my_cluster -Enode.name=node_1
11、es中配置的三個位置:elasticsearch.yml、jvm.options、log4j2.properties;
12、es關鍵配置參數:
1)、path.data和path.logs
2)、cluster.name
3)、node.name
4)、network.host
13、線程池:es針對不同的操作使用多種線程池進行處理;