国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

2、ElasticSearch高級(jí)查詢

這篇具有很好參考價(jià)值的文章主要介紹了2、ElasticSearch高級(jí)查詢。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

一、ES基礎(chǔ)查詢

1.1、數(shù)據(jù)準(zhǔn)備

#PUT請(qǐng)求
http://127.0.0.1:9200/student
#插入文檔, POST請(qǐng)求
http://127.0.0.1:9200/student/_doc/1001
{
 "age":19,
 "nickname":"zhanggang",
 "name":"張剛",
 "sex":"男"
}
http://127.0.0.1:9200/student/_doc/1002
{
 "age":19,
 "nickname":"zhangkun",
 "name":"張坤",
 "sex":"男"
}
http://127.0.0.1:9200/student/_doc/1003
{
 "age":18,
 "nickname":"xiaohong",
 "name":"小紅",
 "sex":"女"
}
http://127.0.0.1:9200/student/_doc/1004
{
 "age":17,
 "nickname":"xiaolan",
 "name":"小藍(lán)",
 "sex":"女"
}

1.2、查詢所有文檔

下面這種寫法,有沒有body體,都可以查詢所有文檔,建議寫上body體。
body體中的"query" 代表的是一個(gè)查詢對(duì)象,里面可以有不同的查詢屬性。 "match_all"表示查詢類型,match_all代表查詢所有。還有 match,term , range 等查詢類型,可以參考下面寫法。
#1、GET請(qǐng)求
http://127.0.0.1:9200/student/_search
#請(qǐng)求body
{
  "query": {
	 "match_all": {}
	 } 
 }

1.3、匹配查詢-match

match 匹配類型查詢,會(huì)把查詢條件進(jìn)行分詞,然后進(jìn)行查詢,多個(gè)詞條之間是 or 的關(guān)系。
可以發(fā)現(xiàn),下面查詢會(huì)把name為張剛和張坤的兩條數(shù)據(jù)查出來。如果請(qǐng)求body中的name改為"張剛剛",同樣是可以查出張剛和張坤的兩條數(shù)據(jù)。 因?yàn)槲臋n里的數(shù)據(jù)分詞后,都有帶"張"的詞,對(duì)請(qǐng)求的name分詞后,同樣是有張,所以可以匹配上。
#GET請(qǐng)求
http://127.0.0.1:9200/student/_search
#請(qǐng)求body
{
	"query": {
		"match": {
			"name":"張"
		}
	} 
}

1.4、匹配查詢-multi_match

multi_match 與 match 類似,不同的是它可以在多個(gè)字段中查詢。
比如下面的"張",它會(huì)在"name"和"nickname"字段分詞查找。
#GET請(qǐng)求
http://127.0.0.1:9200/student/_search
#請(qǐng)求body
{
	"query": {
		"multi_match": {
			"query": "張",
			"fields": ["name","nickname"]
		}
	} 
}

1.5、關(guān)鍵字精確查詢-term

term 查詢,精確的關(guān)鍵詞匹配查詢,不對(duì)查詢條件進(jìn)行分詞
#GET請(qǐng)求
http://127.0.0.1:9200/student/_search
#請(qǐng)求body
{
	"query": {
		"term": {
			"nickname": {
				"value": "zhanggang"
			}
		}
	}
}

1.6、多關(guān)鍵字精確查詢-terms

terms 查詢和 term 查詢一樣,不同的是terms支持對(duì)多個(gè)值精確查詢,注意是對(duì)多個(gè)值。類似musql的in。
#GET請(qǐng)求
http://127.0.0.1:9200/student/_search
#請(qǐng)求body
{
	"query": {
		"terms": {
			"nickname": ["zhanggang","zhangkun"]
		}
	} 
}

1.7、查詢和過濾指定字段-includes和excludes

1、查詢指定字段:ES在搜索的結(jié)果中默認(rèn)把文檔中保存在_source 的所有字段都返回。如果只想查詢部分字段,可以添加_source 的過濾。
#GET請(qǐng)求
http://127.0.0.1:9200/student/_search
#請(qǐng)求body,寫法1,只查詢name和nickname字段
{
	"_source": ["name","nickname"], 
	"query": {
		"terms": {
			"nickname": ["zhanggang"]
		}
	} 
}
#請(qǐng)求body,寫法2,只查詢name和nickname字段
{
	"_source": {
		"includes": ["name","nickname"]
	}, 
	"query": {
		"terms": {
			"nickname": ["zhanggang"]
		}
	}
}

2、過濾指定字段
includes:來指定想要顯示的字段,(可以理解為默認(rèn)為 includes,所以只配置顯示那些字段時(shí)可省略)
excludes:來指定不想要顯示的字段
#GET請(qǐng)求
http://127.0.0.1:9200/student/_search
#請(qǐng)求body,不查詢name和nickname字段
{
	"_source": {
		"excludes": ["name","nickname"]
	}, 
	"query": {
		"terms": {
			"nickname": ["zhanggang"]
		}
	}
}

1.8、組合查詢-pool

組合查詢就是把match、multi_match、term、terms組合查詢。
must:與關(guān)系,相當(dāng)于關(guān)系型數(shù)據(jù)庫中的 and。
should:或關(guān)系,相當(dāng)于關(guān)系型數(shù)據(jù)庫中的 or。
must_not:非關(guān)系,相當(dāng)于關(guān)系型數(shù)據(jù)庫中的 not。
#GET請(qǐng)求
http://127.0.0.1:9200/student/_search
#請(qǐng)求body
{
    "query":{
        "bool":{
            "must":[
                {
                    "match":{
                        "name":"張"
                    }
                }
            ],
            "must_not":[
                {
                    "match":{
                        "age":"27"
                    }
                }
            ],
            "should":[
                {
                    "match":{
                        "sex":"男"
                    }
                }
            ]
        }
    }
}

1.8、過濾(范圍)查詢-range

range 查詢找出那些落在指定區(qū)間內(nèi)的數(shù)字或者時(shí)間,和Mysql的比較符號(hào)是一樣的。
比較符 說明
gt 大于
gte 大于等于
lt 小于
lte 小于等于
#GET請(qǐng)求,查詢大于16小于27
http://127.0.0.1:9200/student/_search
#請(qǐng)求body,查詢age大于16小于27
{
    "query":{
        "range":{
            "age":{
                "gt":16,
                "lt":27
            }
        }
    }
}

1.9、模糊查詢

待定:后面講

1.10、查詢排序-order

ES可以按照不同的字段進(jìn)行排序,并且通過 order 指定排序的方式。desc 降序,asc 升序。
注意:也可以按照_score進(jìn)行排序,上面沒講_score是什么,實(shí)際它就是查詢出來的一個(gè)評(píng)分,也就是表示對(duì)查詢條件匹配程度,匹配條件越大,_score就越大。
#GET請(qǐng)求
http://127.0.0.1:9200/student/_search
#請(qǐng)求body
{
    "query":{
        "bool":{
            "must":[
                {
                    "match":{
                        "name":"張剛"
                    }
                }
            ]
        }
    },
	"sort":[   
        {
            "_score":{
                "order":"desc"
            }
        },
		{
            "age":{
                "order":"desc"
            }
        }
    ]

}

1.11、高亮查詢-highlight

ES可以對(duì)查詢內(nèi)容中的關(guān)鍵字部分,進(jìn)行標(biāo)簽和樣式(高亮)的設(shè)置。
pre_tags:前置標(biāo)簽
post_tags:后置標(biāo)簽
fields:需要高亮的字段

fields中的name也是一個(gè)json,也可以指定一些參數(shù),不過一般都是默認(rèn)不用管的,下面可以指定的參數(shù):
fragment_size:設(shè)置要顯示的文本長度,默認(rèn)100
number_of_fragments:設(shè)置指定的文本片段個(gè)數(shù)
no_match_size:設(shè)置那些query沒有匹配到的doc,你的高亮可以顯示前綴多少個(gè)字符
#GET請(qǐng)求
http://127.0.0.1:9200/student/_search
#請(qǐng)求body
{
    "query":{
        "match":{
            "name":"張剛"
        }
    },
    "highlight":{
        "pre_tags":"<font color='red'>",
        "post_tags":"</font>",
        "fields":{
            "name":{

            }
        }
    }
}

1.12、分頁查詢-from-size

分頁查詢需要加from和size參數(shù):
from:當(dāng)前頁的起始索引,默認(rèn)從 0 開始。
size:每頁顯示多少條。
from = (pageNum - 1) * size。
pageNum 表示第幾頁。
#GET請(qǐng)求
http://127.0.0.1:9200/student/_search
#請(qǐng)求body
{
    "query":{
        "match_all":{
        }
    },
    "sort":[
        {
            "age":{
                "order":"desc"
            }
        }
    ],
    "from":0,
    "size":2
}

二、聚合查詢

經(jīng)過上面的學(xué)習(xí),可以把ES的兩種搜索模式:exact value-精確匹配(必須要支持分詞)、exact value-精確匹配(不支持分詞)。

2.1 聚合查詢注意點(diǎn)-fielddata

1、在ES中,text類型的字段使用一種叫做fielddata的查詢時(shí)內(nèi)存數(shù)據(jù)結(jié)構(gòu),當(dāng)字段被排序,聚合或者通過腳本訪問時(shí)這種數(shù)據(jù)結(jié)構(gòu)會(huì)被創(chuàng)建。它是通過從磁盤讀取每個(gè)段的整個(gè)反向索引來構(gòu)建的,然后存存儲(chǔ)在java的堆內(nèi)存中。
2、fileddata默認(rèn)是不開啟的。fielddata會(huì)消耗大量的堆內(nèi)存空間,尤其是在加載大文本字段時(shí)。一旦fielddata已加載到堆中,它將在該段的生命周期內(nèi)保留。加載fielddata很耗費(fèi)性能的。
3、你只有打開某個(gè)字段的filedata,才可以對(duì)該字段進(jìn)行聚合和排序,一般咱們對(duì)text類型的字段,不會(huì)用到聚合和排序的,ES本身也不推薦打開filedata。
4、注意:fileddata的概念,是對(duì)text類型來說的,其他類型沒有fileddata概念。

2.2 聚合查詢概念

聚合(aggs)不同于普通查詢,是目前學(xué)到的第二種大的查詢分類,第一種即“query”,因此在代碼中的第一層嵌套由“query”變?yōu)榱恕癮ggs”。用于進(jìn)行聚合的字段必須是exact value(精確匹配),分詞字段不可進(jìn)行聚合,對(duì)于text字段如果需要使用聚合,需要開啟fielddata,但是通常不建議,因?yàn)閒ielddata是將聚合使用的數(shù)據(jù)結(jié)構(gòu)由磁盤(docvalues)變?yōu)榱硕褍?nèi)存(fielddata),大數(shù)據(jù)的聚合操作很容易導(dǎo)致內(nèi)存溢出。

聚合分類:
指標(biāo)聚合(Metrics agregations):類似MYSQL中的函數(shù),主要用于最大值、最小值、平均值、字段之和等指標(biāo)的統(tǒng)計(jì)
桶聚合(Bucket agregations):類似MYSQL中的group by的作用,主要用于統(tǒng)計(jì)不同類型數(shù)據(jù)的數(shù)量
管道聚合(Pipeline agregations):用于對(duì)聚合的結(jié)果進(jìn)行二次聚合

2.4 指標(biāo)聚合

2.4.1 指標(biāo)聚合body體說明

aggregation_name 為聚合返回結(jié)果的名稱,由我們自己定義
agg_name 為聚合的參數(shù),比如最大值(max)最小值(min),平均值(avg)等
field_name 表示根據(jù)某個(gè)字段聚合
missing 表示缺失值補(bǔ)充,比如當(dāng)我們算age的平均值,有的文檔沒age字段,平均值就不包括該文檔。如果加上missing,則表示,如果沒age字段,則把a(bǔ)ge按指定的值處理算,這時(shí)平均值就包含該文檔的了。一般情況下不寫missing字段。
size:0表示是否返回聚合的源數(shù)據(jù),加上表示不會(huì)返回,不加表示會(huì)返回,看個(gè)人需要是否添加。
#GET請(qǐng)求
#指標(biāo)聚合body體
{
  "size": 0,
  "aggs": {
    "aggregation_name": {
      "agg_name": {
        "field": "field_name",
        "missing": 0
      }
    }
  }
}

2.4.2 求平均值-avg

#GET請(qǐng)求,求字段age的平均值
http://127.0.0.1:9200/student/_search
#請(qǐng)求body
{
  "size": 0,
  "aggs": {
    "avg_balance_result": {
      "avg": {
        "field": "age"
      }
    }
  }
}

2.4.3 去重統(tǒng)計(jì)-cardinality

#GET請(qǐng)求,求字段age去重后的數(shù)量
http://127.0.0.1:9200/student/_search
#請(qǐng)求body
{
  "size": 0,
  "aggs": {
    "age_count_result": {
      "cardinality": {
        "field": "age"
      }
    }
  }
}

2.4.4 聚合統(tǒng)計(jì)匯總-stats

實(shí)際上就是查詢文檔count數(shù)量,age最小值min,age最大值max,age平均值avg,age總數(shù)sum。
注意:把stats換成extended_stats,會(huì)得到方差,標(biāo)準(zhǔn)差等數(shù)據(jù)。
#get請(qǐng)求,求字段age的平均值
http://127.0.0.1:9200/student/_search
#請(qǐng)求體
{
  "size": 0,
  "aggs": {
    "age_stats_result": {
      "stats": {
        "field": "age"
      }
    }
  }
}
#返回?cái)?shù)據(jù)
{
	"took": 3,
	"timed_out": false,
	"_shards": {
		"total": 1,
		"successful": 1,
		"skipped": 0,
		"failed": 0
	},
	"hits": {
		"total": {
			"value": 4,
			"relation": "eq"
		},
		"max_score": null,
		"hits": []
	},
	"aggregations": {
		"age_stats_result": {
			"count": 3,
			"min": 18,
			"max": 19,
			"avg": 18.666666666666668,
			"sum": 56
		}
	}
}

2.4.5 同時(shí)查最大值和最小值-max-min

#get請(qǐng)求,求字段age的最大值和最小值
http://127.0.0.1:9200/student/_search
#請(qǐng)求體
{
  "size": 0,
  "aggs": {
    "max_age_result": {
      "max": {"field": "age"}
    },
    "min_age_result": {
      "min": {"field": "age"}
    }
  }
}

2.4.6 百分位統(tǒng)計(jì)-percentiles

2.4.7 百分位排名-percentiles

2.4.8 字符串統(tǒng)計(jì)聚合-string_stats

該功能主要是統(tǒng)計(jì)字符串從的最大長度,最小長度,平均長度等。
注意:該功能不屬于對(duì)值的計(jì)算,所以text和keyword,都可以進(jìn)行請(qǐng)求。
如果我們需要進(jìn)行統(tǒng)計(jì)的字段如果是 text 字段,那么就需要加上 .keyword 來進(jìn)行統(tǒng)計(jì),如果是字段屬性是 keyword,就不需要這樣處理。
#get請(qǐng)求
http://127.0.0.1:9200/student/_search
#請(qǐng)求body
{
  "size": 0,
  "aggs": {
    "name_stats_result": {
      "string_stats": {"field": "name.keyword"}
    }
  }
}

2.4.8 sum 統(tǒng)計(jì)總和–結(jié)合query

#get請(qǐng)求
http://127.0.0.1:9200/student/_search
#請(qǐng)求body
{
  "size": 0,
  "query": {"match": {"name": "張"}}, 
  "aggs": {
    "age_sum_result": {
      "sum": {"field": "age"}
    }
  }
}

2.4.9 count 統(tǒng)計(jì)總數(shù)-value_count

#get請(qǐng)求
http://127.0.0.1:9200/student/_search
#請(qǐng)求body
{
  "size": 0,
  "aggs": {
    "age_count_result": {
      "value_count": {
        "field": "age"
      }
    }
  }
}

2.5 桶聚合

2.4.1 桶聚合基本操作

對(duì)age做分組操作,size字段表示現(xiàn)在幾組,比如age分了100組,下面20則表示,只顯示20組。
#get請(qǐng)求
http://127.0.0.1:9200/student/_search
#請(qǐng)求body
{
  "size": 0,
  "aggs": {
    "bucket_age": {
      "terms": {
        "field": "age",
        "size": 20
      }
    }
  }
}

2.4.2 過濾聚合-filter

如果我們想針對(duì)某特定的數(shù)據(jù)進(jìn)行聚合,那么就涉及數(shù)據(jù)的過濾,篩選出特定的數(shù)據(jù)進(jìn)行聚合。

比如我們想篩選出 name的值為 “張剛” 的數(shù)據(jù),然后對(duì)其進(jìn)行取平均數(shù)的操作,我們可以使用 filter 來如下操作。

注意:因?yàn)槲覀儗懭霐?shù)據(jù)前,沒有預(yù)先定義字段的類型,所以 es 中將其自動(dòng)轉(zhuǎn)化成 text 屬性的字段,所以在查詢的時(shí)候用到的是 name.keyword,意思是對(duì) name字段的內(nèi)容作為整體進(jìn)行篩選。

如果name本身是 keyword 屬性,就不用加 .keyword 來操作。

#get請(qǐng)求
http://127.0.0.1:9200/student/_search
#請(qǐng)求body
{
  "size": 0,
  "aggs": {
    "bucket_gender_result": {
      "filter": {"term": {"name.keyword": "張剛"}},
      "aggs": {
        "avg_age_result": {"avg": {"field": "age"}}
      }
    }
  }
}

2.4.3 多桶過濾聚合-filter

在上一點(diǎn)(2.4.2)我們過濾的是單個(gè)條件,name='張剛' 的情況,如果我們想要實(shí)現(xiàn)多個(gè)過濾來操作,可以使用 filters,使用方法也不一樣。
如下:得到的是name為"張剛"和"張坤的數(shù)據(jù)條數(shù)"
#get請(qǐng)求
http://127.0.0.1:9200/student/_search
#請(qǐng)求body
{
  "size": 0,
  "aggs": {
    "bucket_gender": {
      "filters": {
        "filters": {
          "female": {"term": {"name.keyword": "張剛"}},
          "male": {"term": {"name.keyword": "張坤"}}
        }
      }
    }
  }
}
如果想在此基礎(chǔ)上接著對(duì)其進(jìn)行均值計(jì)算,和前面的 filter 操作一樣,在第一個(gè) filters 同級(jí)的地方,加上我們的指標(biāo)聚合操作:
#get請(qǐng)求
http://127.0.0.1:9200/student/_search
#請(qǐng)求body
{
  "size": 0,
  "aggs": {
    "bucket_gender": {
      "filters": {
        "filters": {
          "g_result": {"term": {"name.keyword": "張剛"}},
          "k_result": {"term": {"name.keyword": "張坤"}}
        }
      },
      "aggs": {
        "avg_balance": {"avg": {"field": "age"}}
      }
    }
  }
}

2.4.4 多桶過濾聚合2-filter-other_bucket_key

和2.4.3相比,如果獲取name為張剛和張坤外的的平均age的值,只需要加個(gè)other_bucket_key就可以實(shí)現(xiàn),如下:
#get請(qǐng)求
http://127.0.0.1:9200/student/_search
#請(qǐng)求body
{
  "size": 0,
  "aggs": {
    "bucket_gender": {
      "filters": {
         "other_bucket_key": "non_gender_result", 
        "filters": {
          "g_result": {"term": {"name.keyword": "張剛"}},
          "k_result": {"term": {"name.keyword": "張坤"}}
        }
      },
      "aggs": {
        "avg_balance": {"avg": {"field": "age"}}
      }
    }
  }
}

2.4.5 全局聚合

如果我們要在限定的范圍內(nèi)進(jìn)行聚合,但是又想在全局范圍內(nèi)獲取聚合數(shù)據(jù)進(jìn)行比對(duì)。 比如說,我們?cè)?name='張剛' 的范圍進(jìn)行聚合操作。
注意:下面求平均值,用前面的寫法,也能查出來,之所以這么寫,這個(gè)是可以擴(kuò)展的,比如在aggs中在加不同的桶聚合呢,加filter即可。
#get請(qǐng)求
http://127.0.0.1:9200/student/_search
#請(qǐng)求body
{
  "size": 0, 
  "query": {"match": {"name.keyword": "張剛"}},
  "aggs": {
    "female_balance_avg": {
      "avg": {
        "field": "age"
      }
    }
  }
}
這里通過 query 操作篩選 name='張剛' 的數(shù)據(jù),然后對(duì) age字段進(jìn)行聚合,如果同時(shí)我們想要獲取所有數(shù)據(jù)的 age的平均值,我們可以使用 global 來操作。
#get請(qǐng)求
http://127.0.0.1:9200/student/_search
#請(qǐng)求body
{
  "size": 0, 
  "query": {"match": {"name.keyword": "張剛"}},
  "aggs": {
    "total_balance_avg_result": {
      "global": {},
      "aggs": {
        "avg_balance_result": {
          "avg": {"field": "age"}
        }
      }
    },
    "female_balance_avg_result": {
      "avg": {
        "field": "age"
      }
    }
  }
}

2.4.6 直方圖聚合-histogram

這是個(gè)類似于直方圖的區(qū)間桶的聚合操作。
比如對(duì)于 age 字段,我們想以 5 為步長進(jìn)行聚合,如果 age 字段在 20-50 之間,那么返回的數(shù)據(jù)就會(huì)類似于 20-24,25-29,30-34... 以及落在這些區(qū)間的數(shù)據(jù)的數(shù)量。
而返回的每條數(shù)據(jù)并不會(huì)是一個(gè)區(qū)間,而是一個(gè)開始的數(shù)據(jù),也就是說上面的例子會(huì)返回的 key 是 20,25,30 等。
如果我們進(jìn)行聚合的區(qū)間,比如說 25-29 之間聚合的數(shù)據(jù)是 0,那么 es 還是會(huì)返回這個(gè)區(qū)間,不過 doc_count 是 0,不會(huì)存在不返回這個(gè)區(qū)間 key 的情況。
#get請(qǐng)求
http://127.0.0.1:9200/student/_search
#請(qǐng)求body
{
  "size": 0,
  "aggs": {
    "age_histogram_result": {
      "histogram": {
        "field": "age",
        "interval": 5
      }
    }
  }
}

https://mp.weixin.qq.com/s?__biz=Mzg5ODczMTA0Mw==&mid=2247485299&idx=1&sn=db05433c817b85dd31b65f6d06ac4f47&chksm=c05f5a3ff728d3296ad0ed48495ee65b3f37d2f417a66c5f482a8190faf2278a0b5b4b10d51d&cur_album_id=2701256983458676736&scene=189#wechat_redirect文章來源地址http://www.zghlxwxcb.cn/news/detail-591496.html

到了這里,關(guān)于2、ElasticSearch高級(jí)查詢的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 七、ElasticSearch-高級(jí)查詢操作三

    在進(jìn)行搜索時(shí),搜索出的內(nèi)容中的會(huì)顯示不同的顏色,稱之為高亮。 Elasticsearch 可以對(duì)查詢內(nèi)容中的部分,進(jìn)行標(biāo)簽和樣式 ( 高亮 ) 的設(shè)置。 在使用 match 查詢的同時(shí),加上一個(gè) highlight 屬性: pre_tags :前置標(biāo)簽 post_tags :后置標(biāo)簽 fields :需要高亮的字段

    2023年04月08日
    瀏覽(16)
  • 【ElasticSearch系列-03】ElasticSearch的高級(jí)句法查詢Query DSL

    【ElasticSearch系列-03】ElasticSearch的高級(jí)句法查詢Query DSL

    ElasticSearch系列整體欄目 內(nèi)容 鏈接地址 【一】ElasticSearch下載和安裝 https://zhenghuisheng.blog.csdn.net/article/details/129260827 【二】ElasticSearch概念和基本操作 https://blog.csdn.net/zhenghuishengq/article/details/134121631 【二】ElasticSearch的高級(jí)查詢Query DSL https://blog.csdn.net/zhenghuishengq/article/details/1

    2024年02月06日
    瀏覽(29)
  • 實(shí)戰(zhàn)中關(guān)于elasticsearch中的查詢方法--高級(jí)查詢

    實(shí)戰(zhàn)中關(guān)于elasticsearch中的查詢方法--高級(jí)查詢

    因?yàn)樽罱獜膃lasticsearch中獲取數(shù)據(jù)給前端展示,然后自己摸索到了一些查詢方法,記錄一下,以防忘記 只展示業(yè)務(wù)層的代碼邏輯: 搜索條件方法: 分頁和排序的方法: 這就是普通的查詢辦法。 ?例如要對(duì)整個(gè)elastcsearch中的數(shù)據(jù)進(jìn)行統(tǒng)計(jì)分組和巧合的時(shí)候,上述的方法就不

    2023年04月08日
    瀏覽(27)
  • Elasticsearch的高級(jí)查詢技巧與優(yōu)化

    Elasticsearch是一個(gè)基于分布式搜索和分析引擎,它可以提供實(shí)時(shí)、高性能、可擴(kuò)展的搜索功能。在大數(shù)據(jù)時(shí)代,Elasticsearch在各種應(yīng)用場景中發(fā)揮著重要作用。本文將深入探討Elasticsearch的高級(jí)查詢技巧與優(yōu)化,幫助讀者更好地掌握Elasticsearch的高級(jí)查詢技能。 在深入探討Elastic

    2024年03月19日
    瀏覽(43)
  • ElasticSearch(三)高級(jí)查詢語法(DLS)

    ? ? ? ? 1、單詞詞典:記錄所有文檔單詞,單詞到倒排列表的關(guān)系; ? ? ? ? 2、倒排列表:記錄了單詞對(duì)應(yīng)的文檔id; ? ? ? ? 3、倒排索引項(xiàng):a 文檔id b 詞頻 c 位置(單詞在文本中的位置)d 偏移:單詞開始結(jié)束位置; mapping映射類似于數(shù)據(jù)庫的字段類型 put /索引名 { ??

    2024年01月21日
    瀏覽(25)
  • elasticsearch(es)高級(jí)查詢api

    在以上示例代碼中,定義了一個(gè)返回類型為ResponseEntityMapString, Object的/search POST映射方法,并使用MapString, Object對(duì)象來存儲(chǔ)異步操作的結(jié)果。然后,創(chuàng)建了一個(gè)ActionListener的匿名實(shí)現(xiàn)對(duì)象,并使用client.searchAsync()方法以異步方式執(zhí)行搜索操作。在onResponse()方法中,將搜索結(jié)果存儲(chǔ)

    2023年04月09日
    瀏覽(28)
  • Elasticsearch入門之Http操作(高級(jí)查詢)

    Elasticsearch入門之Http操作(高級(jí)查詢)

    Http操作: 高級(jí)查詢: 高級(jí)查詢:Elasticsearch 提供了基于 JSON 提供完整的查詢 DSL 來定義查詢 初始化數(shù)據(jù): 查詢所有文檔: 在 Postman 中,向 ES 服務(wù)器發(fā) GET 請(qǐng)求 :http://172.18.20.254:9200/shopping/_search 返回值: 返回值解釋: 匹配查詢: match 匹配類型查詢,會(huì)把查詢條件進(jìn)行分詞

    2024年02月02日
    瀏覽(29)
  • 原生語言操作和spring data中RestHighLevelClient操作Elasticsearch,索引,文檔的基本操作,es的高級(jí)查詢.查詢結(jié)果處理. 數(shù)據(jù)聚合.相關(guān)性系數(shù)打分

    原生語言操作和spring data中RestHighLevelClient操作Elasticsearch,索引,文檔的基本操作,es的高級(jí)查詢.查詢結(jié)果處理. 數(shù)據(jù)聚合.相關(guān)性系數(shù)打分

    ? Elasticsearch 是一個(gè)分布式、高擴(kuò)展、高實(shí)時(shí)的搜索與數(shù)據(jù)分析引擎。它能很方便的使大量數(shù)據(jù)具有搜索、分析和探索的能力。充分利用Elasticsearch的水平伸縮性,能使數(shù)據(jù)在生產(chǎn)環(huán)境變得更有價(jià)值。Elasticsearch 的實(shí)現(xiàn)原理主要分為以下幾個(gè)步驟,首先用戶將數(shù)據(jù)提交到Elasti

    2024年02月05日
    瀏覽(124)
  • Elasticsearch7.8.0版本入門—— 高亮查詢文檔(高級(jí)查詢)

    Elasticsearch7.8.0版本入門—— 高亮查詢文檔(高級(jí)查詢)

    在 Postman 中,向 ES 服務(wù)器發(fā) POST 請(qǐng)求 :http://localhost:9200/user/_doc/ 1 ,請(qǐng)求體內(nèi)容為: 在 Postman 中,向 ES 服務(wù)器發(fā) POST 請(qǐng)求 :http://localhost:9200/user/_doc/ 2 ,請(qǐng)求體內(nèi)容為: 在 Postman 中,向 ES 服務(wù)器發(fā) POST 請(qǐng)求 :http://localhost:9200/user/_doc/ 3 ,請(qǐng)求體內(nèi)容為: 在 Postman 中,向

    2024年02月01日
    瀏覽(31)
  • ElasticSearch 高級(jí)查詢語法Query DSL實(shí)戰(zhàn)

    ElasticSearch 高級(jí)查詢語法Query DSL實(shí)戰(zhàn)

    ES中提供了一種強(qiáng)大的檢索數(shù)據(jù)方式,這種檢索方式稱之為Query DSL(Domain Specified Language 領(lǐng)域?qū)S谜Z言) , Query DSL是利用Rest API傳遞JSON格式的請(qǐng)求體(RequestBody)數(shù)據(jù)與ES進(jìn)行交互,這種方式的豐富查詢語法讓ES檢索變得更強(qiáng)大,更簡潔。 官方文檔:https://www.elastic.co/guide/en/elasti

    2024年02月07日
    瀏覽(33)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包