精選8道ES高頻面試題和答案,后悔沒早點看。
前言不要再干巴巴的背誦八股文了,一定要結合具體場景回答面試問題!
我們在回答面試題的時候,不能干巴巴的去背八股文,一定要結合應用場景,最好能結合過去做過的項目,去和面試官溝通。
【資料圖】
這些場景題雖然不要求我們手撕代碼,但是解決思路和關鍵方法還是要爛熟于心的。
這篇文章不僅給出了常見的面試題和答案,并且給出了這些知識點的應用場景、也給出了解決這些問題的思路,并且結合這些思路提供了關鍵代碼。這些代碼段都是可以直接CV到本地運行起來的,并且都寫清楚了注釋,歡迎大家動起手來操練起來,不要死記硬背八股文。
1.模糊搜索解答:如何在Elasticsearch中執(zhí)行模糊搜索(Fuzzy Search)?
在Elasticsearch中,可以使用模糊搜索(Fuzzy Search)來查找與給定術語相似的文檔。模糊搜索是一種基于編輯距離的近似匹配方法,可以處理拼寫錯誤或相似詞的情況。
在一個電商平臺的商業(yè)項目中,可以使用模糊搜索來改善商品搜索功能。例如,當用戶輸入一個關鍵詞時,可以使用模糊搜索來查找與該關鍵詞相似的商品,以提供更全面的搜索結果。
代碼示例:下面是一個簡單的代碼示例,演示如何在Elasticsearch中執(zhí)行模糊搜索:
package mainimport ("bytes""context""encoding/json""fmt""github.com/elastic/go-elasticsearch/v8""github.com/elastic/go-elasticsearch/v8/esapi""log")func main() {// 創(chuàng)建Elasticsearch客戶端cfg := elasticsearch.Config{Addresses: []string{"http://localhost:9200"},}client, err := elasticsearch.NewClient(cfg)if err != nil {log.Fatalf("Error creating the client: %s", err)}// 構建模糊搜索請求var (buf bytes.Bufferres *esapi.Responsesearch = map[string]interface{}{"query": map[string]interface{}{"fuzzy": map[string]interface{}{"title": map[string]interface{}{"value": "iphone","fuzziness": "AUTO",},},},})// 將搜索請求轉換為JSON格式err = json.NewEncoder(&buf).Encode(search)if err != nil {log.Fatalf("Error encoding the search query: %s", err)}// 發(fā)送模糊搜索請求res, err = client.Search(client.Search.WithContext(context.Background()),client.Search.WithIndex("products"),client.Search.WithBody(&buf),client.Search.WithTrackTotalHits(true),client.Search.WithPretty(),)if err != nil {log.Fatalf("Error sending the search request: %s", err)}defer res.Body.Close()// 解析搜索結果var result map[string]interface{}if err := json.NewDecoder(res.Body).Decode(&result); err != nil {log.Fatalf("Error parsing the search response: %s", err)}// 處理搜索結果// ...fmt.Println(result)}
通過上述代碼示例,我們可以看到如何使用Elasticsearch客戶端構建模糊搜索請求,并處理返回的搜索結果。
這個例子展示了如何在商業(yè)項目中使用模糊搜索來改善商品搜索功能,提供更全面的搜索體驗。
2.倒排索引解答:什么是倒排索引?它在Elasticsearch中的作用是什么?
倒排索引是一種數(shù)據(jù)結構,用于加速文本搜索。它將每個文檔中的每個詞映射到包含該詞的文檔列表中。
在商業(yè)項目中,例如新聞發(fā)布平臺,Elasticsearch的倒排索引可以將每個關鍵詞映射到包含該關鍵詞的新聞文章列表中,以實現(xiàn)快速的關鍵詞搜索。
舉個栗子:以下是一個基于Go語言的簡單倒排索引示例代碼:
package mainimport ("fmt""strings")type InvertedIndex map[string][]intfunc BuildInvertedIndex(docs []string) InvertedIndex {index := make(InvertedIndex)for docID, doc := range docs {words := strings.Fields(doc)for _, word := range words {word = strings.ToLower(word)if _, ok := index[word]; !ok {index[word] = []int{}}index[word] = append(index[word], docID)}}return index}func main() {docs := []string{"Hello world","Hello Go","Go programming language","World of Go",}index := BuildInvertedIndex(docs)// 搜索示例query := "Go"query = strings.ToLower(query)if postings, ok := index[query]; ok {fmt.Printf("Documents containing "%s":\n", query)for _, docID := range postings {fmt.Println(docs[docID])}} else {fmt.Printf("No documents containing "%s" found.\n", query)}}
在上述代碼中,我們定義了一個InvertedIndex
類型,它是一個映射,將每個單詞映射到包含該單詞的文檔ID列表。
BuildInvertedIndex
函數(shù)用于構建倒排索引,它遍歷每個文檔,將文檔中的單詞添加到倒排索引中。最后,我們可以使用倒排索引進行搜索,找到包含特定單詞的文檔。
解答:如何在Elasticsearch中執(zhí)行復雜的聚合操作?
在Elasticsearch中,可以使用聚合操作對數(shù)據(jù)進行統(tǒng)計和分析。
例如,在一個社交媒體平臺的商業(yè)項目中,可以使用Elasticsearch的聚合功能來進行用戶行為分析。通過聚合操作,可以計算用戶的活躍度、點贊和評論數(shù)量、用戶關注的話題等。這些統(tǒng)計數(shù)據(jù)可以幫助平臺了解用戶行為模式,優(yōu)化推薦算法和個性化內容展示。
代碼示例:以下是一個基于Go語言的復雜聚合操作示例代碼,用于在社交媒體平臺的商業(yè)項目中進行用戶行為分析:
package mainimport ("bytes""context""encoding/json""fmt""github.com/elastic/go-elasticsearch/v8""github.com/elastic/go-elasticsearch/v8/esapi""log")type UserStats struct {Username string `json:"username"`TotalLikes int `json:"total_likes"`TotalComments int `json:"total_comments"`TotalFollowers int `json:"total_followers"`}func main() {// 創(chuàng)建Elasticsearch客戶端cfg := elasticsearch.Config{Addresses: []string{"http://localhost:9200"},}client, err := elasticsearch.NewClient(cfg)if err != nil {log.Fatalf("Error creating the client: %s", err)}// 構建聚合操作請求var (buf bytes.Bufferres *esapi.Responsesearch = map[string]interface{}{"size": 0,"aggs": map[string]interface{}{"user_stats": map[string]interface{}{"terms": map[string]interface{}{"field": "username.keyword","size": 10,},"aggs": map[string]interface{}{"total_likes": map[string]interface{}{"sum": map[string]interface{}{"field": "likes",},},"total_comments": map[string]interface{}{"sum": map[string]interface{}{"field": "comments",},},"total_followers": map[string]interface{}{"sum": map[string]interface{}{"field": "followers",},},},},},})// 將聚合操作請求轉換為JSON格式if err := json.NewEncoder(&buf).Encode(search); err != nil {log.Fatalf("Error encoding the search query: %s", err)}// 發(fā)送聚合操作請求res, err = client.Search(client.Search.WithContext(context.Background()),client.Search.WithIndex("social_media"),client.Search.WithBody(&buf), client.Search.WithTrackTotalHits(true), client.Search.WithPretty())if err != nil {log.Fatalf("Error sending the search request: %s", err)}defer res.Body.Close()// 解析聚合操作的響應var result map[string]interface{}if err := json.NewDecoder(res.Body).Decode(&result); err != nil {log.Fatalf("Error parsing the search response: %s", err)}// 處理聚合操作的結果aggregations := result["aggregations"].(map[string]interface{})userStatsBucket := aggregations["user_stats"].(map[string]interface{})["buckets"].([]interface{})userStats := make([]UserStats, len(userStatsBucket))for i, bucket := range userStatsBucket {b := bucket.(map[string]interface{})userStats[i] = UserStats{Username: b["key"].(string),TotalLikes: int(b["total_likes"].(map[string]interface{})["value"].(float64)),TotalComments: int(b["total_comments"].(map[string]interface{})["value"].(float64)),TotalFollowers: int(b["total_followers"].(map[string]interface{})["value"].(float64)),}}// 打印用戶行為統(tǒng)計結果for _, stats := range userStats {fmt.Printf("Username: %s\n", stats.Username)fmt.Printf("Total Likes: %d\n", stats.TotalLikes)fmt.Printf("Total Comments: %d\n", stats.TotalComments)fmt.Printf("Total Followers: %d\n", stats.TotalFollowers)fmt.Println("-----------------------")}}
在上述代碼中,我們使用Elasticsearch的聚合操作來計算用戶的活躍度、點贊和評論數(shù)量以及關注者數(shù)量。通過構建聚合操作請求,并解析返回的聚合結果,我們可以獲取用戶行為的統(tǒng)計數(shù)據(jù)。
4.數(shù)據(jù)冗余和高可用解答:如何處理Elasticsearch中的數(shù)據(jù)冗余和高可用性?
在商業(yè)項目中,例如在線電商平臺,可以使用Elasticsearch的數(shù)據(jù)冗余和高可用性機制來確保訂單數(shù)據(jù)的安全和可靠。
通過配置適當數(shù)量的副本,可以實現(xiàn)數(shù)據(jù)的冗余存儲和高可用性。當主分片不可用時,副本可以接管服務,確保訂單數(shù)據(jù)的持續(xù)訪問和處理。
代碼示例:package mainimport ("context""fmt""log""github.com/elastic/go-elasticsearch/v8""github.com/elastic/go-elasticsearch/v8/esapi")func main() {// 創(chuàng)建Elasticsearch客戶端cfg := elasticsearch.Config{Addresses: []string{"http://localhost:9200"},}client, err := elasticsearch.NewClient(cfg)if err != nil {log.Fatalf("Error creating the client: %s", err)}// 設置索引的副本數(shù)req := esapi.IndicesPutSettingsRequest{Index: []string{"orders_index"},Body: map[string]interface{}{"settings": map[string]interface{}{"index": map[string]interface{}{"number_of_replicas": 2,},},},}// 發(fā)送設置副本數(shù)的請求res, err := req.Do(context.Background(), client)if err != nil {log.Fatalf("Error setting the number of replicas: %s", err)}defer res.Body.Close()// 檢查響應狀態(tài)if res.IsError() {log.Fatalf("Error setting the number of replicas: %s", res.Status())}// 打印設置副本數(shù)成功的消息fmt.Println("Number of replicas set successfully for orders_index")}
在上述代碼中,我們使用Elasticsearch的Indices Put Settings API來設置索引的副本數(shù)。在示例中,我們將訂單數(shù)據(jù)的索引名稱設置為orders_index,并將副本數(shù)設置為2。這樣,Elasticsearch將為該索引創(chuàng)建兩個副本,實現(xiàn)數(shù)據(jù)的冗余存儲和高可用性。
5. 性能優(yōu)化解答:硬件優(yōu)化:配置適當?shù)挠布Y源,如增加內存、優(yōu)化磁盤I/O性能等,以提高Elasticsearch的整體性能。分片和副本優(yōu)化:根據(jù)數(shù)據(jù)量和查詢負載的需求,調整分片和副本的數(shù)量和分布,以平衡數(shù)據(jù)分布和查詢負載。索引和映射優(yōu)化:設計合理的索引和映射,選擇合適的字段類型、分析器和分詞器,以提高搜索和聚合的性能。查詢和過濾器優(yōu)化:使用合適的查詢和過濾器,避免全文搜索和聚合操作的過度使用,以提高查詢性能。緩存和預熱優(yōu)化:使用緩存機制,如Elasticsearch的請求緩存或外部緩存,緩存頻繁查詢的結果,以減少重復計算的開銷。預熱機制可以在系統(tǒng)啟動時加載常用數(shù)據(jù),提前準備好熱門查詢的結果。索引生命周期管理:根據(jù)數(shù)據(jù)的使用情況,定期刪除過期的數(shù)據(jù)和索引,以減少存儲和查詢負載。監(jiān)控和調優(yōu):使用Elasticsearch的監(jiān)控工具和指標,監(jiān)控集群的健康狀態(tài)、節(jié)點的負載、響應時間和資源利用率等舉個例子:如何優(yōu)化Elasticsearch的性能?
package mainimport ("context""fmt""log""time""github.com/elastic/go-elasticsearch/v8""github.com/elastic/go-elasticsearch/v8/esapi")func main() {// 創(chuàng)建Elasticsearch客戶端cfg := elasticsearch.Config{Addresses: []string{"http://localhost:9200"},}client, err := elasticsearch.NewClient(cfg)if err != nil {log.Fatalf("Error creating the client: %s", err)}// 配置索引的刷新間隔req := esapi.IndicesPutSettingsRequest{Index: []string{"my_index"},Body: map[string]interface{}{"index": map[string]interface{}{"refresh_interval": "30s",},},}// 發(fā)送設置刷新間隔的請求res, err := req.Do(context.Background(), client)if err != nil {log.Fatalf("Error setting the refresh interval: %s", err)}defer res.Body.Close()// 檢查響應狀態(tài)if res.IsError() {log.Fatalf("Error setting the refresh interval: %s", res.Status())}// 打印設置刷新間隔成功的消息fmt.Println("Refresh interval set successfully for my_index")// 等待一段時間,以便索引刷新time.Sleep(5 * time.Second)// 構建搜索請求reqSearch := esapi.SearchRequest{Index: []string{"my_index"},Body: map[string]interface{}{"query": map[string]interface{}{"match": map[string]interface{}{"title": "example",},},},}// 發(fā)送搜索請求resSearch, err := reqSearch.Do(context.Background(), client)if err != nil {log.Fatalf("Error sending the search request: %s", err)}defer resSearch.Body.Close()// 解析搜索結果// ...fmt.Println("Search request completed successfully")}
在上述代碼中,我們使用Elasticsearch的Indices Put Settings API來設置索引的刷新間隔,通過設置較長的刷新間隔(例如30秒),可以減少刷新操作的頻率,從而提高性能。然后,我們發(fā)送一個搜索請求來驗證性能優(yōu)化的效果。
6.數(shù)據(jù)一致性解答:如何處理Elasticsearch中的數(shù)據(jù)一致性?
在商業(yè)項目中,例如在線支付平臺,數(shù)據(jù)一致性是至關重要的。為了處理Elasticsearch中的數(shù)據(jù)一致性,可以采取以下方法:
使用事務機制:在進行涉及多個文檔的操作時,使用事務機制來確保數(shù)據(jù)的一致性。例如,在一個在線支付平臺的商業(yè)項目中,當用戶發(fā)起支付請求時,可以使用事務來同時更新訂單狀態(tài)和用戶賬戶余額,以保證數(shù)據(jù)的一致性。使用樂觀并發(fā)控制:在并發(fā)寫入場景下,使用樂觀并發(fā)控制機制來處理數(shù)據(jù)一致性。例如,在一個社交媒體平臺的商業(yè)項目中,當多個用戶同時對同一篇文章進行點贊操作時,可以使用樂觀并發(fā)控制來確保點贊數(shù)的一致性。使用版本控制:在更新文檔時,使用版本控制機制來處理并發(fā)寫入沖突。例如,在一個博客平臺的商業(yè)項目中,當多個用戶同時對同一篇文章進行編輯時,可以使用版本控制來處理并發(fā)寫入沖突,保證數(shù)據(jù)的一致性。使用分布式鎖:在分布式環(huán)境下,使用分布式鎖機制來處理并發(fā)寫入沖突。例如,在一個在線預訂平臺的商業(yè)項目中,當多個用戶同時對同一份資源進行預訂時,可以使用分布式鎖來保證預訂的一致性。舉個例子:以下是一個明確的代碼示例,展示如何使用Go語言和Elasticsearch的API來處理數(shù)據(jù)一致性:
package mainimport ("context""fmt""log""time""github.com/elastic/go-elasticsearch/v8""github.com/elastic/go-elasticsearch/v8/esapi")func main() {// 創(chuàng)建Elasticsearch客戶端cfg := elasticsearch.Config{Addresses: []string{"http://localhost:9200"},}client, err := elasticsearch.NewClient(cfg)if err != nil {log.Fatalf("Error creating the client: %s", err)}// 定義事務操作transaction := func() error {// 開始事務reqBegin := esapi.XPackSecurityAuthenticateRequest{}resBegin, err := reqBegin.Do(context.Background(), client)if err != nil {return fmt.Errorf("Error beginning the transaction: %s", err)}defer resBegin.Body.Close()// 執(zhí)行事務操作// ...// 提交事務reqCommit := esapi.XPackSecurityInvalidateTokenRequest{}resCommit, err := reqCommit.Do(context.Background(), client)if err != nil {return fmt.Errorf("Error committing the transaction: %s", err)}defer resCommit.Body.Close()return nil}// 執(zhí)行事務err = transaction()if err != nil {log.Fatalf("Error executing the transaction: %s", err)}fmt.Println("Transaction executed successfully")}
在上述代碼中,我們定義了一個transaction函數(shù),用于執(zhí)行事務操作。在事務中,我們可以執(zhí)行一系列的操作,例如更新多個文檔或執(zhí)行復雜的業(yè)務邏輯。在示例中,我們使用了Elasticsearch的XPack Security API來模擬事務的開始和提交操作。
7. 數(shù)據(jù)安全性解答:如何保護Elasticsearch中的數(shù)據(jù)安全性?
保護Elasticsearch中的數(shù)據(jù)安全性是商業(yè)項目中的重要任務之一。以下是一些保護數(shù)據(jù)安全性的方法:
訪問控制:使用Elasticsearch的安全特性,如訪問控制列表(ACL)和角色基于訪問控制(RBAC),限制對敏感數(shù)據(jù)的訪問權限。例如,在一個醫(yī)療保健應用的商業(yè)項目中,可以設置只有授權的醫(yī)生才能訪問患者的病歷數(shù)據(jù)。數(shù)據(jù)加密:使用SSL/TLS加密通信,確保數(shù)據(jù)在傳輸過程中的安全性。例如,在一個金融應用的商業(yè)項目中,可以使用SSL/TLS加密用戶的交易數(shù)據(jù),以保護用戶的隱私和安全。數(shù)據(jù)備份和恢復:定期備份數(shù)據(jù),并確保備份數(shù)據(jù)的安全存儲。在商業(yè)項目中,例如一個在線存儲平臺,可以定期備份用戶的文件數(shù)據(jù),并采取措施確保備份數(shù)據(jù)的完整性和可靠性。審計日志:記錄和監(jiān)控對Elasticsearch的訪問和操作,以便及時發(fā)現(xiàn)和應對潛在的安全威脅。例如,在一個企業(yè)協(xié)作平臺的商業(yè)項目中,可以記錄用戶的登錄、文件訪問和編輯操作,以便審計和追蹤數(shù)據(jù)的使用情況。舉個例子:以下代碼示例,展示如何使用Go語言和Elasticsearch的API來實現(xiàn)訪問控制和數(shù)據(jù)加密:
package mainimport ("context""fmt""log""github.com/elastic/go-elasticsearch/v8""github.com/elastic/go-elasticsearch/v8/esapi")func main() {// 創(chuàng)建Elasticsearch客戶端cfg := elasticsearch.Config{Addresses: []string{"http://localhost:9200"},Username: "admin",Password: "password",}client, err := elasticsearch.NewClient(cfg)if err != nil {log.Fatalf("Error creating the client: %s", err)}// 設置索引的訪問控制列表(ACL)reqACL := esapi.SecurityPutRoleMappingRequest{Name: "doctor_role_mapping",Body: map[string]interface{}{"roles": []string{"doctor_role"},"users": []string{"doctor_user"},},}// 發(fā)送設置訪問控制列表的請求resACL, err := reqACL.Do(context.Background(), client)if err != nil {log.Fatalf("Error setting the ACL: %s", err)}defer resACL.Body.Close()// 檢查響應狀態(tài)if resACL.IsError() {log.Fatalf("Error setting the ACL: %s", resACL.Status())}// 打印設置訪問控制列表成功的消息fmt.Println("ACL set successfully")// 設置索引的SSL/TLS加密reqTLS := esapi.IndicesPutSettingsRequest{Index: []string{"patient_data_index"},Body: map[string]interface{}{"settings": map[string]interface{}{"index": map[string]interface{}{"number_of_replicas": 1,"number_of_shards": 5,"refresh_interval": "1s","codec": "best_compression",},},},}// 發(fā)送設置SSL/TLS加密的請求resTLS, err := reqTLS.Do(context.Background(), client)if err != nil {log.Fatalf("Error setting the TLS encryption: %s", err)}defer resTLS.Body.Close()// 檢查響應狀態(tài)if resTLS.IsError() {log.Fatalf("Error setting the TLS encryption: %s", resTLS.Status())}// 打印設置TLS加密成功的消息fmt.Println("TLS encryption set successfully")}
在上述代碼中,我們使用Elasticsearch的Security API來設置訪問控制列表(ACL)和索引的SSL/TLS加密。在示例中,我們設置了一個名為doctor_role_mapping
的角色映射,將醫(yī)生用戶與醫(yī)生角色關聯(lián)起來,并設置了一個名為patient_data_index
的索引的SSL/TLS加密。
解答:如何處理Elasticsearch中的數(shù)據(jù)同步和復制?
在商業(yè)項目中,例如一個多地區(qū)的電子商務平臺,數(shù)據(jù)同步和復制是至關重要的。為了處理Elasticsearch中的數(shù)據(jù)同步和復制,可以采取以下方法:
使用Elasticsearch的副本機制:通過配置適當數(shù)量的副本,將數(shù)據(jù)復制到不同的節(jié)點上,以實現(xiàn)數(shù)據(jù)的冗余存儲和高可用性。當主分片不可用時,副本可以接管服務,確保數(shù)據(jù)的持續(xù)訪問和處理。使用Elasticsearch的跨集群復制功能:通過設置跨集群復制,可以將數(shù)據(jù)復制到不同的集群中,實現(xiàn)跨地區(qū)的數(shù)據(jù)同步和復制。例如,在一個多地區(qū)的電子商務平臺的商業(yè)項目中,可以將數(shù)據(jù)復制到不同的地理位置的集群中,確保數(shù)據(jù)在不同地區(qū)的節(jié)點上都有備份。這樣可以提高數(shù)據(jù)的可用性和容災能力,保證用戶在不同地區(qū)的訪問體驗。代碼示例:以下是一個簡單的示例代碼,展示了如何使用Elasticsearch的跨集群復制功能:
package mainimport ("context""fmt""log""github.com/elastic/go-elasticsearch/v8""github.com/elastic/go-elasticsearch/v8/esapi")func main() {// 創(chuàng)建源集群的Elasticsearch客戶端sourceCfg := elasticsearch.Config{Addresses: []string{"http://source-cluster:9200"},}sourceClient, err := elasticsearch.NewClient(sourceCfg)if err != nil {log.Fatalf("Error creating the source client: %s", err)}// 創(chuàng)建目標集群的Elasticsearch客戶端targetCfg := elasticsearch.Config{Addresses: []string{"http://target-cluster:9200"},}targetClient, err := elasticsearch.NewClient(targetCfg)if err != nil {log.Fatalf("Error creating the target client: %s", err)}// 設置跨集群復制的請求體reqBody := `{"remote_cluster": {"remote_cluster_name": "source-cluster","seed_hosts": ["source-cluster:9300"]},"leader_index_patterns": ["index1-*"],"follower_index_prefix": "replica-"}`// 發(fā)送跨集群復制的請求res, err := targetClient.CrossClusterReplication.FollowIndex("follower-index",reqBody,targetClient.CrossClusterReplication.FollowIndex.WithContext(context.Background()),)if err != nil {log.Fatalf(""Error sending the follow index request: %s", err) } // 解析跨集群復制的響應defer res.Body.Close()if res.IsError() {log.Fatalf("Follow index request failed: %s", res.Status())}// 處理跨集群復制的響應fmt.Println("Follow index request successful")
通過上述代碼示例,我們可以看到如何使用Elasticsearch的跨集群復制功能來實現(xiàn)數(shù)據(jù)的同步和復制。在商業(yè)項目中,這種方法可以用于多地區(qū)的電子商務平臺,確保數(shù)據(jù)在不同地區(qū)的節(jié)點上都有備份,提高數(shù)據(jù)的可用性和容災能力。
總結相信你看完這些面試題后,對我開篇講的這些話有了更好的理解:
我們在回答面試題的時候,不能干巴巴的去背八股文,一定要結合應用場景,最好能結合過去做過的項目,去和面試官溝通。
這些場景題雖然不要求我們手撕代碼,但是解決思路和關鍵方法還是要爛熟于心的。
這篇文章不僅給出了常見的面試題和答案,并且給出了這些知識點的應用場景、也給出了解決這些問題的思路,并且結合這些思路提供了關鍵代碼。這些代碼段都是可以直接CV到本地運行起來的,并且都寫清楚了注釋,歡迎大家動起手來操練起來,不要死記硬背八股文。
最后,整理不易,原創(chuàng)更不易,你的點贊、留言、轉發(fā)是對我最大的支持!
全網(wǎng)搜索:王中陽Go
,獲得更多面試題資料。
關鍵詞:
您可能也感興趣:
為您推薦
【時快訊】花幾千元就能“拿證”,高考志愿填報市場亂象調查
【熱聞】朗迪集團: 高溫天氣是加速空調需求釋放的積極信號之一,空調銷量的增長將帶動空調風葉風機需求的提升
文王夢熊原文_文王夢熊 渭水泱泱
排行
- qq中轉站的過期文件如何恢復(qq中轉站)-環(huán)球最新
- 上海將對既有多層住宅加裝電梯提取住房公積金政策做出惠民調整
- 深圳進一步規(guī)范住房公積金繳存提取等業(yè)務事項
- 北京樓市迎重磅通知 嚴厲打擊房屋銷售、租賃市場違法違規(guī)行為
- 《北京市深化住宅專項維修資金管理改革實施方案》公開征求意見
- 美的置業(yè)經(jīng)過61輪競價競得義烏1宗商住地,溢價率20.08%
- 深圳3個安居型商品房項目今日起接受網(wǎng)上認購
- 天津61宗地塊掛牌出讓起始時間調整為9月1日
- 南京大力推進“智慧公積金”建設 線上貸款申請功能享便利
- 一季度置業(yè)旺季 新房月度訪問熱度同比上漲20.9%
最近更新
- 精選8道ES高頻面試題和答案,后悔沒早點看。
- “大佛被賣”背后的樂山樓市:去年成交量縮水4成,多個商業(yè)項...
- 每日速遞:陜西省富平縣發(fā)布雷雨大風黃色預警
- 微信聊天記錄怎么遷移到別人手機_微信聊天記錄怎么遷移
- 西北首條!西安無人駕駛地鐵正式開通:乘客可在車頭車尾參觀拍照
- 熱議:中鋼協(xié):2023年5月“對標挖潛”企業(yè)主要原燃材料采購成...
- 柴細茶_關于柴細茶概略 環(huán)球速看
- 夢天家居:獲得綠色建材產品認證證書及綠色產品認證證書
- 【環(huán)球聚看點】長寧區(qū)衛(wèi)生健康20個重點建設項目發(fā)布,牽手醫(yī)...
- 北大青鳥再次入選2022年生活服務TOP100,實力獲業(yè)界認證! 全球頭條
- 辦公自動化應用教程第三版_辦公自動化教程 2015年人民郵電出...
- 德科立:公司有針對用戶的特殊需求自研相應光芯片
- 短訊!江蘇舉行洪澤湖滯洪區(qū)避險轉移應急演練
- 湖南邵東19歲男子在看守所死亡,警方稱系自殺,家屬提起國家...
- 舒膚佳有洗衣粉了嗎(舒膚佳有洗衣粉和洗潔凈嗎) 全球快報
- 極目云探校|技能大賽常勝將軍做客極目直播間,暢談獲獎密碼
- 固定資產電子設備包括哪些
- 新奇跡世界2可以一個人玩下去(新奇跡世界2)
- 【當前熱聞】俄羅斯撤銷針對普里戈任的刑事立案
- 環(huán)球熱門:高陽縣農發(fā)行組織開展貸后管理學習工作
- 農發(fā)行阜平縣支行:擦亮農地銀行品牌 全面助力鄉(xiāng)村振興_世界聚焦
- 美股是T+0交易嗎?內地散戶怎么買美股?|全球熱文
- 天天熱訊:聚焦體育教學資源建設!這個培訓班在長沙開班啦
- 麻六記已進入沃爾瑪、7-Eleven等商超便利店零售渠道|環(huán)球觀速訊
- HMM宣布開通連接遠東、印度和地中海的新航線
- 焦點快看:豐田卡羅拉16手動_豐田卡羅拉1 6手動
- 焦點報道:封開縣自然資源局
- 未來車企還剩幾家?行業(yè)不文明?李書福、曾慶洪、余承東等這么說
- 北辰歐葆庭長輩手工坊:端午佳節(jié),芳香四溢 每日聚焦
- 小牛vs雷霆2011_小牛vs雷霆直播