<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                # Completion Suggester 原文鏈接 :[https://www.elastic.co/guide/en/elasticsearch/reference/5.0/search-suggesters-completion.html](https://www.elastic.co/guide/en/elasticsearch/reference/5.0/search-suggesters-completion.html) 譯文鏈接 : [Completion Suggester](/display/Elasticsearch/Completion+Suggester) 貢獻者 : @Josh 為了理解 **suggestion s** 的形式,請先閱讀 **suggestion s** 第一頁。 完全(**completion**)**suggester** 提供自動完成/按需搜索功能。 這是一種導航功能,可在用戶輸入時引導用戶查看相關結果,從而提高搜索精度。 它不是用于拼寫校正或平均值功能,如術語或短語 **suggesters?**。 理想地,自動完成功能應當與用戶鍵入的速度一樣快,以提供與用戶已經鍵入的內容相關的即時反饋。因此,完成?**suggester**?針對速度進行優化。 ?**suggester**?使用允許快速查找的數據結構,但是構建成本高并且存儲在存儲器中。 ## 映射(mapping) 要使用此功能,請為此字段指定一個特殊映射,為快速完成的字段值編制索引。 ``` PUT music { "mappings": { "song" : { "properties" : { "suggest" : { "type" : "completion" }, "title" : { "type": "keyword" } } } } } ``` 映射支持以下參數: **analyzer** 使用索引分析器,默認為簡單。 如果你想知道為什么我們沒有選擇標準分析器:我們嘗試在這里很容易理解的行為,如果你索引字段內容在Drive-in,你不會得到任何建議, (第一個非停用詞) **search_analyzer** 要使用的搜索分析器,默認為分析器的值。 **preserve_separators** 保留分隔符,默認為true。 如果禁用,你可以找到一個以Foo Fighters開頭的字段,如果你推薦foof。 **preserve_position_increments** 啟用位置增量,默認為true。 如果禁用和使用停用分析器,您可以得到一個字段從披頭士開始,如果你 suggest?b。 注意:你也可以通過索引兩個輸入,Beatles和披頭士,不需要改變一個簡單的分析器,如果你能夠豐富你的數據。 **max_input_length** 限制單個輸入的長度,默認為50個UTF-16代碼點。 此限制僅在索引時使用,以減少每個輸入字符串的字符總數,以防止大量輸入膨脹底層數據結構。 大多數用例不會受默認值的影響,因為前綴完成很少超過前綴長度超過少數幾個字符。 ## 索引 您像任何其他字段一樣索引 **suggestion** 。 **suggestion** 由輸入和可選的權重屬性組成。 輸入是要由 **suggestion** 查詢匹配的期望文本,并且權重確定如何對 **suggestion** 進行評分。 索引 **suggestion** 如下: ``` PUT music/song/1?refresh { "suggest" : { "input": [ "Nevermind", "Nirvana" ], "weight" : 34 } } ``` 以下參數被支持: **input** 輸入存儲,這可以是字符串數組或只是一個字符串。 此字段是必填字段。 **weight** 正整數或包含正整數的字符串,用于定義權重并允許對 **suggestions** 進行排名。?此字段是可選的。 您可以按如下所示為文檔編制多個 suggestion s: ``` PUT music/song/1?refresh { "suggest" : [ { "input": "Nevermind", "weight" : 10 }, { "input": "Nirvana", "weight" : 3 } ] } ``` 您可以使用以下速記形式。 請注意,您不能使用 **suggestion** 指定權重。 ``` PUT music/song/1?refresh { "suggest" : [ "Nevermind", "Nirvana" ] } ``` ## 查詢 **suggest**?像往常一樣工作,除了您必須指定 **suggest**?類型為完成。 **suggestions** 接近實時,這意味著可以通過刷新顯示新 **suggestions** ,并且一旦刪除就不會顯示文檔。 此請求: ``` POST music/_suggest?pretty { "song-suggest" : { "prefix" : "nir", "completion" : { "field" : "suggest" } } } ``` 返回這個響應: ``` { "_shards" : { "total" : 5, "successful" : 5, "failed" : 0 }, "song-suggest" : [ { "text" : "nir", "offset" : 0, "length" : 3, "options" : [ { "text" : "Nirvana", "_index": "music", "_type": "song", "_id": "1", "_score": 1.0, "_source": { "suggest": ["Nevermind", "Nirvana"] } } ] } ] } ``` 重要 _**source** 元字段必須啟用,這是默認行為,以啟用返回 **_source** 與 **suggestions** 。 配置的 **suggestion** 的權重返回為_score。 文本字段使用您的索引 **suggestion** 的輸入。 默認情況下, suggestion 返回完整的文檔_source。 由于磁盤讀取和網絡傳輸開銷,_source的大小可能會影響性能。 為了節省一些網絡開銷,使用源過濾從_source中過濾掉不必要的字段,以最小化_source大小。 請注意,_suggest 端點不支持源過濾,但在_search端點上使用 **suggestion** : ``` POST music/_search?size=0 { "_source": "suggest", "suggest": { "song-suggest" : { "prefix" : "nir", "completion" : { "field" : "suggest" } } } } ``` 應該看起來像: ``` { "took": 6, "timed_out": false, "_shards" : { "total" : 5, "successful" : 5, "failed" : 0 }, "hits": { "total" : 0, "max_score" : 0.0, "hits" : [] }, "suggest": { "song-suggest" : [ { "text" : "nir", "offset" : 0, "length" : 3, "options" : [ { "text" : "Nirvana", "_index": "music", "_type": "song", "_id": "1", "_score": 1.0, "_source": { "suggest": ["Nevermind", "Nirvana"] } } ] } ] } } ``` 基本的完全 **suggester** 查詢支持以下參數: **field** 要運行查詢的字段的名稱(必需) **size** 要返回的 **suggestions** 數(默認為5)。 完全 **suggester** 考慮索引中的所有文檔。 有關如何查詢文檔子集的解釋,請參閱 [Context Suggester](http://www.apache.wiki/display/Elasticsearch/Context+Suggester)。 在跨越多個碎片的完成查詢的情況下, **suggest** 在兩個階段中執行,其中最后階段從碎片提取相關文檔,這意味著對于單個碎片的執行完成請求由于文檔提取開銷而更加高效, **suggest** 跨越多個碎片。 為了獲得最佳的完成性能, 建議將完成索引到單個分片索引中。 在由于碎片大小而導致堆使用率過高的情況下,仍建議將索引拆分為多個分片,而不是優化完成性能。 ## 模糊查詢 完成 **suggester**?還支持模糊查詢 - 這意味著,您可以在搜索中輸入錯誤,并仍然返回結果。 ``` POST music/_suggest?pretty { "song-suggest" : { "prefix" : "nor", "completion" : { "field" : "suggest", "fuzzy" : { "fuzziness" : 2 } } } } ``` 與查詢前綴共享最長前綴的 **suggestion** 將得分更高。 模糊查詢可以采用特定的模糊參數。 支持以下參數: | **fuzziness** | 模糊系數,默認為AUTO。 有關允許的設置,請參閱 [“Fuzzinessedit”一節](http://www.apache.wiki/pages/viewpage.action?pageId=4882851)。 | | **transpositions** | 如果設置為true,則換位計數為一個更改而不是兩個,默認為true | | **min_length** | 返回模糊 **suggestions** 前的輸入的最小長度,默認值3 | | **prefix_length** | 輸入的最小長度(未針對模糊替代項進行檢查)默認為1 | | **unicode_aware** | 如果為true,則所有度量(如模糊編輯距離,置換和長度)都以Unicode代碼點而不是字節為單位。 這比原始字節稍慢,因此默認情況下設置為false。 | 如果你想堅持使用默認值,但仍然使用模糊,你可以使用 fuzzy:{}或fuzzy:true。 ## 正則表達式查詢 完成 **suggester** 還支持正則表達式查詢,意味著您可以將前綴表達為正則表達式 ``` POST music/_suggest?pretty { "song-suggest" : { "regex" : "n[ever|i]r", "completion" : { "field" : "suggest" } } } ``` 正則表達式查詢可以使用特定的正則表達式參數。 支持以下參數: | **flags** | 可能的標志是ALL(默認),ANYSTRING,COMPLEMENT,EMPTY,INTERSECTION,INTERVAL或NONE。 有關它們的含義,請參見 [regexp-syntax](http://www.apache.wiki/pages/viewpage.action?pageId=4882851). | | **max_determinized_states** | 正則表達式是危險的,因為很容易意外地創建一個無害的,需要指數數量的內部確定的自動機狀態(以及相應的RAM和CPU)執行 **Lucene** 。 Lucene使用 **max_determinized_states** 設置(默認為10000)阻止這些操作。 您可以提高此限制以允許執行更復雜的正則表達式。 |
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看