中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Elasticsearch Search API怎么使用

發布時間:2021-12-16 10:05:35 來源:億速云 閱讀:182 作者:iii 欄目:大數據

本篇內容介紹了“Elasticsearch Search API怎么使用”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

Search API概述

詳細API如下:

  • public final SearchResponse sear-ch(SearchRequest searchReques-t, RequestOptions options) throws IOException

  • public final void searchAsync(Sear-chRequest searchRequest, Reque-stOptions options, ActionListener li-stener)

    SearchRequest類圖:

    Elasticsearch Search API怎么使用

其關鍵屬性說明如下:

  • private SearchType searchType = SearchType.DEFAULT:搜索類型

  1. QUERY_THEN_FETCH
    首先根據路由算法向相關分片發送請求,此時只返回documentId與一些必要信息(例如用于排序等),然 后對各個分片的結果進行匯聚、排序。然后選取客戶端需要獲取的數據條數(top n)。最后根據doc-umentId再向各個分片請求具體的文檔信息。

  2. QUERY_AND_FETCH

    在5.4.x版本開始廢棄,直接向各個分片節點請求數據,每個分片返回客戶端請求數量的文檔信息,然后匯聚并全部返回給客戶端,返回的數據為客戶端請求數量size * (路由后的分片數量)。

  3. DFS_QUERY_THEN_FETCH

    在開始向各個節點發送請求之前會先進行一次詞頻與相關性的計算,后續處理流程與QUERY_THEN_F-ETCH相同,可以看出該查詢類型的文檔相關性會更高,但性能比QUE-RY_THEN_FETCH要差。

  • private String[] indices:待查詢的索引庫。

  • private String routing:路由字段值。

  • private String preference:復制組內傾向性。

  • private SearchSourceBuilder sour-ce:查詢主體(rerquest body),后續會重點講解。

  • private Boolean requestCache:是否開啟查詢緩存。

  • private Boolean allowPartialSearc-hResults:是否允許部分成功。

  • private Scroll scroll:滾動API(用于分頁)

  • private int batchedReduceSize = DEFAULT_BATCHED_REDUCE_SIZE:批量歸并size:默認為512

  • private int maxConcurrentShardRequests = 0:建議最大值別超過256,其核心含義待研究。

  • private int preFilterShardSize = 128,其核心作用待研究。

  • private String[] types:待查詢的類型。

接下來再來重點關注一下查詢API幾個通用的參數:

  • timeout
    查詢的超時時間。

  • from
    查詢開始的偏移量,分頁參數,類似于關系數據庫的分頁的start。默認值為0。

  • size
    批量獲取條數,用于分頁查詢。

  • search_type
    查詢類型,6.4.0只支持QUERY_T-HEN_FETCH與DFS_QUERY_TH-EN_FETCH。

  • request_cache
    查詢緩存,如果設置為false,取決于index級別的設置,將在索引管理API時詳細講解。

  • search_results
    是否允許部分成功,例如一個查詢請求需要向3個分片發出請求,如果只有兩個分片成功返回結果而另外一個出現故障。如果設置為false則會返回整體失敗,如果設置為true則會成功部分結果,默認為true。

  • terminate after
    一個查詢為每個分片最多收集的文檔數,當達到該數量是,查詢會提前結束。

  • batched_reduce_size
    在協調節點上應該立即減少一次請求需要訪問的分片數量,如果一次請請求需要匯聚太多節點上的數據容易造成內存消耗,該值可作為一個保護機制,控制一個請求同一時間并發訪問的最大分片數量,默認為512。

注意:search_type,request_cache和allow_partial_search_results這三個參數,必須查詢url級別的參數(query str-ing parameters),如果使用Rest low Le-vel API時需要特別留意。

 

URI Search

Elasticsearch支持使用URI請求模式來使用Search API,并不支持查詢請求體中所有參數,該模式主要用途是用于測試,諸如使用CURL查詢命令等。

URI Search示例如下:

1GET twitter/_search?q=user:kimchy
 

URI Search支持如下參數:

  • q
    定義查詢字符串,其語法映射為DSL查詢語法之query_string。

  • df
    查詢字符串未使用字段前綴時定義的默認字段。

  • analyzer
    針對查詢字符串使用的分詞器。

  • analyze_wildcard
    是否分析通配符合前綴查詢,默認值為false。

  • batched_reduce_size
    控制協調節點批量發送分片的最大個數,主要是控制協調節點內存的消耗而提供的一種保護機制。

  • default_oprator
    默認操作類型,可選值為and、or,默認值為or。

  • lenient
    是否支持類型轉換異常,默認為fa-sle,如果將一個字符類型傳遞給一個數字類型會拋出異常。如果設置true則忽略該異常。

  • explain
    類似于執行計劃,表示對于每一個命中,包含如果得分是如何算出來的,默認為false。

  • _source
    用于對_source字段進行過濾,可以設置false來禁止返回_souce字段。該參數支持通配符表達式,例如ob-j.*,用于字段過濾。

  • stored_fields
    用于字段過濾,已在字段過濾部分詳細介紹過。

  • sort
    排序,可以類似于關系型數據庫的排序語法:fieldName:asc | desc,也可以使用特殊字段_score(表示按分數,默認值)。

  • track_scores
    當使用排序時,跟蹤返回結果中分數計算過程。

  • track_total_hits
    默認值為true,表示在返回結果中返回滿足該查詢條件的所有記錄數。

  • timeout
    查詢超時時間,默認永不超時。

  • terminate_after
    是否開啟提前結束查詢,主要是控制一次查詢,從一個分片中返回的最大文檔數量,如果開啟,返回結果中會包含一個響應參數terminate-d_early,指示是否提前結束。

  • from
    用于分頁,起始記錄數。

  • size
    用于分頁,控制一次查詢,從每個分片查詢的記錄條數。

  • search_type
    查詢類型,已在文章開頭處介紹。

  • allow_partial_search_results
    是否允許部分分片執行失敗,默認為true,也可以集群配置參數:se-arch.default_allow_partial_results來設置默認值。

“Elasticsearch Search API怎么使用”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

温宿县| 沙坪坝区| 正阳县| 渑池县| 新昌县| 西吉县| 临洮县| 西丰县| 鹤山市| 高邮市| 拉萨市| 永年县| 娄底市| 宝山区| 龙游县| 静海县| 利辛县| 洛宁县| 东莞市| 阳新县| 连南| 霍城县| 神池县| 青田县| 山阴县| 泊头市| 抚宁县| 普兰县| 宝应县| 长阳| 丘北县| 辽源市| 沙雅县| 蓬莱市| 图木舒克市| 伊宁县| 平潭县| 大埔区| 寿光市| 墨玉县| 察哈|