新聞中心
elasticsearch的使用示例分析,很多新手對(duì)此不是很清楚,為了幫助大家解決這個(gè)難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來(lái)學(xué)習(xí)下,希望你能有所收獲。
為禹會(huì)等地區(qū)用戶提供了全套網(wǎng)頁(yè)設(shè)計(jì)制作服務(wù),及禹會(huì)網(wǎng)站建設(shè)行業(yè)解決方案。主營(yíng)業(yè)務(wù)為網(wǎng)站設(shè)計(jì)、成都網(wǎng)站建設(shè)、禹會(huì)網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠(chéng)的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會(huì)得到認(rèn)可,從而選擇與我們長(zhǎng)期合作。這樣,我們也可以走得更遠(yuǎn)!
Elasticsearch 是一個(gè)基于Lucene的搜索服務(wù)器。它提供了一個(gè)分布式多用戶能力的全文搜索引擎,基于RESTful web接口。
一、基本概念:
1.索引(index)
是Elasticsearch對(duì)邏輯數(shù)據(jù)的邏輯存儲(chǔ),所以它可以分為更小的部分。可以把索引看成關(guān)系型數(shù)據(jù)庫(kù)的表,索引的結(jié)構(gòu)是為快速有效的全文索引準(zhǔn)備的,特別是它不存儲(chǔ)原始值。Elasticsearch可以把索引存放在一臺(tái)機(jī)器或者分散在多臺(tái)服務(wù)器上,每個(gè)索引有一或多個(gè)分片(shard),每個(gè) 分片可以有多個(gè)副本(replica)。
2.文檔(document)
存儲(chǔ)在Elasticsearch中的主要實(shí)體叫文檔(document)。用關(guān)系型數(shù)據(jù)庫(kù)來(lái)類比的話,一個(gè)文檔相當(dāng)于數(shù)據(jù)庫(kù) 表中的一行記錄。
3.Mapping
Mapping是對(duì)類型中的文檔中的每個(gè)字段進(jìn)行預(yù)先定義數(shù)據(jù)類型等功能,如定義文檔中的某個(gè)字段為整形,使用什么分析器,是否可搜索等,一個(gè)索引可以定義多個(gè)mapping。
二、基本操作:
1.新增索引并設(shè)置 mapping
PUT請(qǐng)求 http://ip:9200/索引名稱/body體如下{ "settings": {"number_of_shards": 3,"number_of_replicas": 1}, "mappings": { "properties": { "video_like": {"type": "long"}, "video_date": {"type": "date","format": "yyyy-MM-dd HH:mm:ss||yyyy-MM-dd||epoch_millis"}, "video_title": {"analyzer" : "ik_smart","type": "text"}, "video_comment": {"type": "long"}, "share_conut": {"type": "long"}, "video_img_url": {"type": "text"}, "video_url": {"type": "text"}, "type_id": {"type": "long"}, "updata_time": {"type": "date","format": "yyyy-MM-dd HH:mm:ss||yyyy-MM-dd||epoch_millis"}, "user_id":{"type":"long"} } }}
number_of_replicas 是數(shù)據(jù)備份數(shù),如果只有一臺(tái)機(jī)器,設(shè)置為0,number_of_shards 是數(shù)據(jù)分片數(shù),默認(rèn)為5,有時(shí)候設(shè)置為3。
2.對(duì)已存在的索引新增 mapping 字段
PUT請(qǐng)求 http://ip:9200/index/_mapping
{
"properties":{
"name":{
"type":"text"
}
}
}
index為你索引庫(kù)的名稱。body 里寫的是要新增的字段名稱和字段類型,上面的例子是新增 name 字段,類型為 text 。
3.判斷某個(gè)字段是否為空
http://ip:9200/index/_search
{
"query": {
"bool": {
"must_not": {
"exists": {
"field": "label"
}
}
}
}
}
向es插入數(shù)據(jù)時(shí),如果某個(gè)字段為空,我就沒(méi)有對(duì)該字段寫入值,所以判斷某個(gè)字段是否為空值,直接判斷這個(gè)字段是否存在即可。用 exists 判斷某個(gè)字段是否存在,這個(gè)例子是判斷 label 的值是否為空
4.must 多個(gè)條件
http://ip:9200/index/_search
{
"query": {
"bool": {
"must": [
{
"range": {
"video_date": {
"gte": "now-24h+8h",
"lte": "now+8h"
}
}
},
{
"exists": {
"field": "label"
}
}
]
}
}
}
must 多個(gè)條件時(shí),對(duì)應(yīng)的參數(shù)類型是列表。上面的例子: 查找必須是video_date 在某個(gè)時(shí)間范圍,并且 label 字段存在的結(jié)果。
看完上述內(nèi)容是否對(duì)您有幫助呢?如果還想對(duì)相關(guān)知識(shí)有進(jìn)一步的了解或閱讀更多相關(guān)文章,請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝您對(duì)創(chuàng)新互聯(lián)的支持。
文章名稱:elasticsearch的使用示例分析
標(biāo)題來(lái)源:http://www.dlmjj.cn/article/jhches.html