公主的腿间舌奴们np肉_国产在热线精品视频99公交_公主车上荫蒂添的好舒服_公侵犯人妻中文字慕一区二区_公么大龟弄得我好舒服秀_公交车+多人+高cH文章推荐_日本熟妇另类视频在线播放

最簡(jiǎn)單理解web前端

2020-5-12    前端達(dá)人

web前端

web中開(kāi)發(fā)的三個(gè)基本技術(shù)(html5,css3,JavaScript)

html簡(jiǎn)介:html語(yǔ)言是純文本類(lèi)型的語(yǔ)言,是internet上用來(lái)編寫(xiě)網(wǎng)頁(yè)的主要語(yǔ)言,使用HTML語(yǔ)言編寫(xiě)的網(wǎng)頁(yè)文件也是標(biāo)準(zhǔn)的純文本文件(簡(jiǎn)單說(shuō)告訴瀏覽器顯示什么)
.
css簡(jiǎn)介:css是一種網(wǎng)頁(yè)控制技術(shù),采用css技術(shù),可以有效地對(duì)頁(yè)面、字體、顏色、背景和其他效果實(shí)現(xiàn)更加精準(zhǔn)的控制
(簡(jiǎn)單的說(shuō)告訴瀏覽器如何顯示)
.
JavaScript:JavaScript是web頁(yè)面中的一種腳本編程語(yǔ)言,也是一種通用的、跨平臺(tái)的、基于對(duì)象和事件驅(qū)動(dòng)并具有安全性的腳本語(yǔ)言。它不需要進(jìn)行編譯,而是直接嵌入HTML頁(yè)面中,把靜態(tài)頁(yè)面變成動(dòng)態(tài)頁(yè)面。(簡(jiǎn)單的來(lái)說(shuō)告訴瀏覽器如何交互)

簡(jiǎn)單HTML文件結(jié)構(gòu)

<html>/*文件開(kāi)始*/ <head>/*文件頭*/ <title>標(biāo)題</title>/*文件標(biāo)題*/ </head> <body>內(nèi)容</body> </html>/*文件結(jié)束*/

HTML常用的標(biāo)記

<br>換行 <p></p>段落 <s></s>刪除線 <b></b>字體粗體 <u></u>下劃線 <em></em>斜體內(nèi)容 <sub></sub> 下標(biāo) <sup></sup>上標(biāo) <hr></hr>水平線 <a></a>超鏈接 .....





bool查詢簡(jiǎn)介

Elasticsearch(下面簡(jiǎn)稱(chēng)ES)中的bool查詢?cè)跇I(yè)務(wù)中使用也是比較多的。在一些非實(shí)時(shí)的分頁(yè)查詢,導(dǎo)出的場(chǎng)景,我們經(jīng)常使用bool查詢組合各種查詢條件。



Bool查詢包括四種子句,



must

filter

should

must_not

我這里只介紹下must和filter兩種子句,因?yàn)槭俏覀兘裉煲v的重點(diǎn)。其它的可以自行查詢官方文檔。



must, 返回的文檔必須滿足must子句的條件,并且參與計(jì)算分值

filter, 返回的文檔必須滿足filter子句的條件。但是跟Must不一樣的是,不會(huì)計(jì)算分值, 并且可以使用緩存

從上面的描述來(lái)看,你應(yīng)該已經(jīng)知道,如果只看查詢的結(jié)果,must和filter是一樣的。區(qū)別是場(chǎng)景不一樣。如果結(jié)果需要算分就使用must,否則可以考慮使用filter。



光說(shuō)比較抽象,看個(gè)例子,下面兩個(gè)語(yǔ)句,查詢的結(jié)果是一樣的。



使用filter過(guò)濾時(shí)間范圍,

GET kibana_sample_data_ecommerce/_search
{
  "size": 1000, 
  "query": {
    "bool": {
      "must": [
        {"term": {
          "currency": "EUR"
        }}
      ],
      "filter": {
        "range": {
          "order_date": {
            "gte": "2020-01-25T23:45:36.000+00:00",
            "lte": "2020-02-01T23:45:36.000+00:00"
          }
        }
      }
    }
  }
}


filter比較的原理

上一節(jié)你已經(jīng)知道了must和filter的基本用法和區(qū)別。簡(jiǎn)單來(lái)講,如果你的業(yè)務(wù)場(chǎng)景不需要算分,使用filter可以真的讓你的查詢效率飛起來(lái)。



為了說(shuō)明filter查詢的原因,我們需要引入ES的一個(gè)概念 query context和 filter context。



query context



query context關(guān)注的是,文檔到底有多匹配查詢的條件,這個(gè)匹配的程度是由相關(guān)性分?jǐn)?shù)決定的,分?jǐn)?shù)越高自然就越匹配。所以這種查詢除了關(guān)注文檔是否滿足查詢條件,還需要額外的計(jì)算相關(guān)性分?jǐn)?shù).



filter context



filter context關(guān)注的是,文檔是否匹配查詢條件,結(jié)果只有兩個(gè),是和否。沒(méi)有其它額外的計(jì)算。它常用的一個(gè)場(chǎng)景就是過(guò)濾時(shí)間范圍。



并且filter context會(huì)自動(dòng)被ES緩存結(jié)果,效率進(jìn)一步提高。



對(duì)于bool查詢,must使用的就是query context,而filter使用的就是filter context。



我們可以通過(guò)一個(gè)示例驗(yàn)證下。繼續(xù)使用第一節(jié)的例子,我們通過(guò)kibana自帶的search profiler來(lái)看看ES的查詢的詳細(xì)過(guò)程。



使用must查詢的執(zhí)行過(guò)程是這樣的:



可以明顯看到,此次查詢計(jì)算了相關(guān)性分?jǐn)?shù),而且score的部分占據(jù)了查詢時(shí)間的10分之一左右。



filter的查詢我就不截圖了,區(qū)別就是score這部分是0,也就是不計(jì)算相關(guān)性分?jǐn)?shù)。



除了是否計(jì)算相關(guān)性算分的差別,經(jīng)常使用的過(guò)濾器將被Elasticsearch自動(dòng)緩存,以提高性能。



我自己曾經(jīng)在一個(gè)項(xiàng)目中,對(duì)一個(gè)業(yè)務(wù)查詢場(chǎng)景做了這種優(yōu)化,當(dāng)時(shí)線上的索引文檔數(shù)量大概是3000萬(wàn)左右,改成filter之后,查詢的速度幾乎快了一倍。


總結(jié)

我們應(yīng)該根據(jù)自己的實(shí)際業(yè)務(wù)場(chǎng)景選擇合適的查詢語(yǔ)句,在某些不需要相關(guān)性算分的查詢場(chǎng)景,盡量使用filter context可以讓你的查詢更加。


日歷

鏈接

個(gè)人資料

存檔

文山县| 舞钢市| 太保市| 武邑县| 崇明县| 鹤峰县| 涿鹿县| 十堰市| 罗甸县| 于都县| 铜川市| 江西省| 新营市| 乌兰县| 胶南市| 水城县| 永年县| 宁陵县| 邓州市| 泰来县| 封丘县| 岱山县| 万安县| 瑞安市| 习水县| 吉木乃县| 万盛区| 永胜县| 德阳市| 肥西县| 遂平县| 通山县| 新干县| 井陉县| 北辰区| 西宁市| 朝阳区| 黔西| 抚宁县| 柳江县| 饶河县|