es的檢索分為query和filter
query關心的score,即查詢結果與檢索條件的相關度
filter關心yes or no,關心是匹配的是與否,因此不會參與score相關的計算
圖中的左側是filter的主要特性,右側是query相關的主要查詢,比較高階的檢索目前掌握不熟練,用的也少,沒有列出
按照層次分為符合查詢(compound query),全文檢索(full text query),葉子查詢(term-level query),可以簡單記為字段查詢或詞元查詢
其中全文檢索主要體現在分詞上,因此需要掌握上乙個篇章的analysis模組中的 _analyze介面分析分詞的結果
1、檢查字段型別,檢視欄位是 analyzed, not_analyzed
2、分析查詢字串,如果只有乙個單詞項, match 查詢在執行時就會是單個底層的 term 查詢
3、查詢匹配的文件,會在倒排索引中查詢匹配文件,然後獲取一組包含該項的文件
4、為每個文件評分
1、 resthighlevelclient-------注入乙個client
2、 searchrequest -------構建乙個request
3、 searchsourcebuilder --構建乙個sourcebuilder
4、 aggregationbuilder和querybuilder----構建乙個檢索或聚合的builder
一般查詢:=、>、>=、
1、連線符 or(should) and(must)
and: boolquerybuilder.must(querybuilders.termquery("isdel",1));
or: boolquerybuilder.should(querybuilders.termquery("casestatus",s));
2、比較查詢
=:querybuilders.termquery("isdel",1));
範圍:querybuilders.rangequery("overduestarttime").lte(startdate.gettime())
<= lte
>= gte
> gt
3、in查詢------termsquery
querybuilders.termsquery("id",idlist)
4、like查詢------wildcardquery,matchphrasequery,matchquery
querybuilders.wildcardquery("phone", "*" + phonenumber+ "*")
querybuilders.matchphrasequery("name", name)
5、orderby 和limit
searchresponse searchresponse = client.preparesearch(index)
.settypes(type)
.setquery(boolquerybuilder)
//指定查詢字段
.addstoredfield("id")
.addsort(order, sortorder)
.setfrom((currentpage - 1) * limit).setsize(limit)
.execute()
.actionget();
學習後總結,總結後再學習
學習後總結,總結後再學習 2010年畢業以來,讀了幾百本書籍,包括it技術 管理 歷史 營銷 金融 心理等等,在讀某商學院mba一年後感覺有些東西還是要寫寫,除了能增加自己對某些知識和理論的理解外,也許其他人也碰巧想關注一下,了解這方面的東西。我所寫的都是一些簡單的概念層面的解釋,不會做太深入的闡述...
學習總結 近期acm學習的總結
開學已經乙個月了,對acm的學習也乙個月了,做了一下總結 對自己不好的地方的反省 1.開學一開始學的是stl,不得不說stl是乙個很好的東西,熟練的運用stl大大的減少了 量,也使演算法容易實現。但是我在用stl後使自己產生了一種惰性思維。在兩個星期的stl練習後,我發現自己變得越來越懶,不願意自己...
深度學習學習總結
北京大學人工智慧實踐 tensorflow2.0 學習1 6章 複習1 4章 第4章需要寫乙個部落格 寫4,5,6章 吳恩達深度學習第四步 卷積神經網路 學習1 2周 複習1 2周 殘差網路和inception網路不太懂,目前用不到 三四周是目標定位,人臉識別,神經風格轉換目前用不到 油管最新最熱t...