文章目錄編寫:HorinJsor
創(chuàng)新互聯(lián)科技有限公司專業(yè)互聯(lián)網(wǎng)基礎(chǔ)服務(wù)商,為您提供綿陽(yáng)主機(jī)托管,高防主機(jī),成都IDC機(jī)房托管,成都主機(jī)托管等互聯(lián)網(wǎng)服務(wù)。
ElasticSearch是一款非常強(qiáng)大的開(kāi)源搜索引擎,可以幫助我們從海量數(shù)據(jù)中快速找到需要的內(nèi)容。
Blibili黑馬程序員 P81
kibana作用:幫我們發(fā)送請(qǐng)求語(yǔ)句到ES中,并可視化有哪些索引庫(kù)
Blibili黑馬程序員 P82
IK作用:處理中文分詞
Blibili黑馬程序員 P83
①約束:
②針對(duì)某個(gè)字段進(jìn)行約束,創(chuàng)建索引庫(kù)例子:
PUT /heima //指定索引庫(kù)名稱
{"mappings": {"properties": { "info":{"type": "text", //文本,可分詞類型
"analyzer": "ik_smart" //指定分詞器類型,ik為中文分詞器
},
"email":{"type": "keyword", //精確值,不可分詞類型
"index": "false" //不參與索引
},
"name":{ "type":"object", //對(duì)象類型
"properties": { "firstName": {"type": "keyword"
}
}
},
// ... 略
}
}
}
兩個(gè)字段合成一個(gè)索引字段:
字段拷貝可以使用copy_to屬性將當(dāng)前字段拷貝到指定字段。
"all": {"type": "text",
"analyzer": "ik_max_word" //拷貝字段屬性
},
"brand": {"type": "keyword",
"copy_to": "all" //指定拷貝到的目標(biāo)地點(diǎn)(字段)
}
③修改索引庫(kù)語(yǔ)法
修改索引庫(kù):不能修改已經(jīng)創(chuàng)建的索引字段,只能新增索引庫(kù)不存在的字段
④文檔操作(在索引庫(kù)操作數(shù)據(jù))索引庫(kù)是為了限制數(shù)據(jù)規(guī)則,文檔是放數(shù)據(jù)。
全量修改:可當(dāng)新增使用,存在則會(huì)覆蓋原有文檔(數(shù)據(jù))。
ES官方提供了各種不同語(yǔ)言的客戶端,用來(lái)操作ES。這些客戶端的本質(zhì)就是組裝DSL語(yǔ)句,通過(guò)http請(qǐng)求發(fā)送給ES。(簡(jiǎn)化 3 的操作)
官方文檔地址
①引入依賴:pom配置文件
org.elasticsearch.client elasticsearch-rest-high-level-client
②因?yàn)镾pringBoot默認(rèn)的ES版本是7.6.2,所以我們需要覆蓋默認(rèn)的ES版本:
1.8 7.12.1
③初始化客戶端:
RestHighLevelClient client = new RestHighLevelClient(RestClient.builder(
HttpHost.create("http://192.168.150.101:9200") //指定ES的端口
));
初始化客戶端參考完成代碼:
public class ElasticsearchDocumentTest {// 客戶端
private RestHighLevelClient client;
@BeforeEach
void setUp() {client = new RestHighLevelClient(RestClient.builder(
HttpHost.create("http://192.168.150.101:9200")
));
}
@AfterEach
void tearDown() throws IOException {client.close();
}
}
④創(chuàng)建索引庫(kù):
@Test
void testCreateHotelIndex() throws IOException {// 1.創(chuàng)建Request對(duì)象
CreateIndexRequest request = new CreateIndexRequest("hotel");
// 2.請(qǐng)求參數(shù),MAPPING_TEMPLATE是靜態(tài)常量字符串,內(nèi)容是創(chuàng)建索引庫(kù)的DSL語(yǔ)句
request.source(MAPPING_TEMPLATE, XContentType.JSON); //MAPPING_TEMPLATE是常量,放入SSL創(chuàng)庫(kù)語(yǔ)句
// 3.發(fā)起請(qǐng)求
client.indices().create(request, RequestOptions.DEFAULT);
}
①添加文檔:
@Test
void testIndexDocument() throws IOException {// 1.創(chuàng)建request對(duì)象
IndexRequest request = new IndexRequest("indexName").id("1");//id可以使用mapper查出來(lái)的對(duì)象id替換
// 2.準(zhǔn)備JSON文檔
request.source("{\"name\": \"Jack\", \"age\": 21}", XContentType.JSON);//數(shù)據(jù)可用mybatis查出來(lái)的數(shù)據(jù),再用FastJson轉(zhuǎn)對(duì)象為json
// 3.發(fā)送請(qǐng)求
client.index(request, RequestOptions.DEFAULT);
}
②根據(jù)id查詢文檔:
@Test
void testGetDocumentById() throws IOException {// 1.創(chuàng)建request對(duì)象
GetRequest request = new GetRequest("indexName", "1");
// 2.發(fā)送請(qǐng)求,得到結(jié)果
GetResponse response = client.get(request, RequestOptions.DEFAULT);
// 3.解析結(jié)果
String json = response.getSourceAsString();
System.out.println(json);
}
③改、刪(注意符號(hào)):
④批量新增文檔(使用 MybatisPlus 查詢數(shù)據(jù)后導(dǎo)入到 ES ):
提示:這里對(duì)文章進(jìn)行總結(jié):
例如:以上就是今天要講的內(nèi)容,本文僅僅簡(jiǎn)單介紹了pandas的使用,而pandas提供了大量能使我們快速便捷地處理數(shù)據(jù)的函數(shù)和方法。
你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級(jí)服務(wù)器適合批量采購(gòu),新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧