<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>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                ## 查詢語句查詢 使用查詢解析器為了解析其內容的查詢。 這里是一個例子: | `GET /_search` `{` `"query"``: {` `"query_string"`?`: {` `"default_field"`?`:?``"content"``,` `"query"`?`:?``"this AND that OR thus"` `}` `}` `}` | query_string以下幾個重要參數: | 參數 | 描述 | | `query` | 要解析的實際查詢。 請參閱查詢字符串語法。 | | `default_field` | 如果未指定前綴字段,則為查詢字詞的默認字段。 默認為index.query.default_field索引設置,默認為_all。 | | `default_operator` | 如果未指定顯式運算符,則使用默認運算符。 例如,使用OR的默認運算符,匈牙利的查詢資本將轉換為OR匈牙利的資本OR,如果使用默認運算符AND,則相同的查詢將轉換為AND匈牙利的資本AND。 默認值為OR。 | | `analyzer` | 用于分析查詢字符串的分析器名稱。 | | `allow_leading_wildcard` | 設置時,*或? 被允許作為第一個字符。 默認為true。 | | `lowercase_expanded_terms` | 通配符,前綴,模糊和范圍查詢的條件是否自動降低或不降低(因為它們沒有被分析)。 默認為true。 | | `enable_position_increments` | 設置為true可在結果查詢中啟用位置增量。 默認為true。 | | `fuzzy_max_expansions` | 控制模糊查詢將擴展到的術語數。 默認值為50 | | `fuzziness` | 設置模糊查詢的模糊性。 默認為AUTO。 有關允許的設置,請參閱“Fuzzinessedit”一節. | | `fuzzy_prefix_length` | 設置模糊查詢的前綴長度。 默認值為0。 | | `phrase_slop` | 設置短語的默認斜率。 如果為零,則需要精確的短語匹配。 默認值為0。 | | `boost` | 設置查詢的提升值。 默認為1.0。 | | `analyze_wildcard` | 默認情況下,不分析查詢字符串中的通配符術語。 將此值設置為true,將盡力分析這些值。 | | `auto_generate_phrase_queries` | 默認False | | `max_determinized_states` | 限制允許創建多少個自動機狀態regexp查詢。 這防止了太難的(例如指數級的)正則表達式。 默認為10000。 | | `minimum_should_match` | 一個值,用于控制在生成的布爾查詢中應該匹配多少個“應該”子句。 它可以是絕對值(2),百分比(30%)或兩者的組合。 | | `lenient` | 如果設置為true將導致基于格式的失敗(例如向數字字段提供文本)被忽略。 | | `locale` | 應用于字符串轉換的區域設置。 默認為ROOT。 | | `time_zone` | 要應用于與日期相關的任何范圍查詢的時區。 另請參閱JODA時區。 | 當生成多項查詢時,可以控制如何使用rewrite參數重寫它。 ### 默認字段: 當未在查詢字符串語法中顯式指定要搜索的字段時,將使用index.query.default_field來導出要搜索的字段。 它默認為_all字段。 因此,如果_all字段被禁用,可能有必要更改它以設置不同的默認字段。 ### 多個字段: query_string查詢也可以針對多個字段運行。 字段可以通過“fields”參數提供(如下例所示)。 對多個字段運行query_string查詢的想法是將每個查詢項擴展為OR子句,如下所示: | `field1:query_term OR field2:query_term | ...` | 例如,以下查詢: | `GET /_search` `{` `"query"``: {` `"query_string"`?`: {` `"fields"`?`: [``"content"``,?``"name"``],` `"query"`?`:?``"this AND that"` `}` `}` `}` | 等價與: | `GET /_search` `{` `"query"``: {` `"query_string"``: {` `"query"``:?``"(content:this OR name:this) AND (content:that OR name:that)"` `}` `}` `}` | 由于從單個搜索項生成了幾個查詢,因此可以使用dis_max查詢或簡單的bool查詢自動完成組合。 例如(使用^ 5表示法將名稱提升5): | `GET /_search` `{` `"query"``: {` `"query_string"`?`: {` `"fields"`?`: [``"content"``,?``"name^5"``],` `"query"`?`:?``"this AND that OR thus"``,` `"use_dis_max"`?`:?``true` `}` `}` `}` | 簡單通配符也可以用于搜索文檔的“內部”特定內部元素。 例如,如果我們有一個城市對象與多個字段(或內部對象與字段)在其中,我們可以自動搜索所有“城市”字段: | `GET /_search` `{` `"query"``: {` `"query_string"`?`: {` `"fields"`?`: [``"city.*"``],` `"query"`?`:?``"this AND that OR thus"``,` `"use_dis_max"`?`:?``true` `}` `}` `}` | 另一個選項是在查詢字符串本身中提供通配符字段搜索(正確轉義*符號),例如:city。\ *:something。 對多個字段運行query_string查詢時,允許以下附加參數: | 參數 | 描述 | | --- | --- | | `use_dis_max` | 應該使用dis_max(設置為true)或bool查詢(設置為false)組合查詢。 默認為true。 | | `tie_breaker` | 當使用dis_max時,斷開最大斷路器。 默認值為0。 | fields參數還可以包括基于模式的字段名稱,允許自動擴展到相關字段(包括動態引入的字段)。 例如: | `GET /_search` `{` `"query"``: {` `"query_string"`?`: {` `"fields"`?`: [``"content"``,?``"name.*^5"``],` `"query"`?`:?``"this AND that OR thus"``,` `"use_dis_max"`?`:?``true` `}` `}` `}` | ## 查詢字符串語法 查詢字符串“迷你語言”由查詢字符串查詢和查詢API中的q查詢字符串參數使用。 查詢字符串被解析為一系列的術語和運算符。 術語可以是單個詞 -?quick?或brown?或一個短語,用雙引號括起來 - “quick brown” - 以相同的順序搜索短語中的所有單詞。 操作員允許您自定義搜索 - 可用選項如下所述。 ### 字段名稱 如查詢字符串查詢中所述,搜索default_field是為了搜索搜索詞,但可以在查詢語法中指定其他字段 如在status字段內包含active | `status:active` | 以下表示標題字段包含快速或棕色。 如果省略OR運算符,將使用默認運算符 | `title:(quick OR brown)` `title:(quick brown)` | 以下表示作者字段包含確切的短語“john smith” | `author:``"John Smith"` | 表示包含任何字段book.title,book.content或book.date包含quick?或brown(注意我們如何需要用反斜杠轉義*) | `book.\*:(quick brown)` | 以下表示字段標題具有任何非空值 | `_exists_:title` | ### 通配符 通配符搜索可以使用單個術語運行? 替換單個字符,*替換零個或多個字符: | `qu?ck bro*` | 請注意,通配符查詢會使用大量的內存并且執行得效率非常慢 - 只需考慮需要查詢多少條件來匹配查詢字符串“a * b * c *” 在字的開頭允許通配符(例如“* ing”)特別耗性能,因為索引中的所有項都需要檢查,以防它們匹配。 可以通過將allow_leading_wildcard設置為false來禁用主導通配符。 默認情況下不會分析通配字詞 - 它們是小寫的(lowercase_expanded_terms默認為true),但不進行進一步的分析,主要是因為無法準確分析缺少某些字母的單詞。 但是,通過將analyze_wildcard設置為true,將嘗試在搜索術語列表以匹配術語之前分析通配字。 ### 正則表達式 正則表達式模式可以通過以正斜線(“/”)包裹在查詢字符串中來嵌入: | `name:/joh?n(ath[oa]n)/` | 說明了正則表達式語法中受支持的正則表達式語法。 allow_leading_wildcard參數對正則表達式沒有任何控制。 諸如以下的查詢字符串將強制Elasticsearch訪問索引中的每個術語: | `/.*n/` | 要謹慎使用。 ### 模糊性 我們可以使用“fuzzy”運算符搜索與我們的搜索字詞類似但不完全相似的字詞: | `quikc~ brwn~ foks~` | 這使用Damerau-Levenshtein距離找到所有最多只有兩個變化的術語,其中一個變化是單個字符的插入,刪除或替換,或兩個相鄰字符的變換。 默認編輯距離為2,但編輯距離為1應足以捕獲所有人為拼寫錯誤的80%。 它可以指定為: | `quikc~``1` | ### 鄰近搜索 雖然短語查詢(例如“john smith”)期望所有的詞語具有完全相同的順序,但是鄰近查詢允許指定的詞語更遠或者以不同的順序。 以相同的方式,模糊查詢可以指定單詞中的字符的最大編輯距離,接近搜索允許我們指定短語中的單詞的最大編輯距離: | `"fox quick"``~``5` | 字段中的文本越接近查詢字符串中指定的原始順序,文檔則被認為是相關。 與上述示例查詢相比,短語“quick fox”將被認為比“quick brown fox”更相關。 ### 范圍 可以為日期,數字或字符串字段指定范圍。 包含的范圍使用方括號[min TO max]和大括號{min TO max}的排除范圍指定。 2012年的每一天 | `date:[``2012``-``01``-``01`?`TO?``2012``-``12``-``31``]` | 數字1到5 | `count:[``1`?`TO?``5``]` | 標簽在alpha到omega之間但不包含alpha和omega | `tag:{alpha TO omega}` | 數字1到無群大 | `count:[``10`?`TO *]` | 日期:2012你年以前 | `date:{* TO?``2012``-``01``-``01``}` | 大塊好和方括號可以組合使用 數字1到5但不包含5 | `count:[``1`?`TO?``5``}` | 一側無界的范圍可以使用以下語法 | `age:>``10` `age:>=``10` `age:<``10` `age:<=``10` | 要將上限和下限與簡化的語法組合,您需要使用AND運算符連接兩個子句: | `age:(>=``10`?`AND <``20``)` `age:(+>=``10`?`+<``20``)` | 查詢字符串中范圍的解析可能很復雜并且容易出錯。 使用顯式范圍查詢是更可靠的。 ### 特殊字符 使用boost運算符^使一個術語比另一個更相關。 例如,如果我們想查找關于狐貍的所有文檔,但我們對快速狐貍特別感興趣: | `quick^``2`?`fox` | 默認提升值為1,但可以是任何正浮點數。 在0和1之間升高降低相關性。 提升也可以應用于短語或組: | `"john smith"``^``2`???`(foo bar)^``4` | ### 布爾運算符 默認情況下,所有字詞都是可選的,只要一個字詞匹配。 搜索foo bar baz會找到包含foo或bar或baz中的一個或多個的任何文檔。 我們已經討論了上面的default_operator,它允許你強制所有的術語是必需的,但也有布爾運算符,可以在查詢字符串本身使用,以提供更多的控制。 首選運算符是+(此項必須存在)和 - (此項不能存在)。 所有其他條款是可選的。 例如,此查詢: | `quick brown +fox -news` | 說明: * fox必須存在 * news不存在 * quick 和brown是可選的 - 它們的存在增加相關性 還支持熟悉的操作符AND,OR和NOT(也寫為&&,||和!)。 然而,這些操作符的效果可能比第一眼明顯的復雜。 NOT優先于AND,優先于OR。 而+和 - 只影響運算符右邊的項,AND和OR可以影響左邊和右邊的項。 | `使用AND,OR和NOT重寫上述查詢表明復雜性:` `quick OR brown AND fox AND NOT news` `這是不正確的,因為brown現在是必需的術語。` `(quick OR brown) AND fox AND NOT news` `這是不正確的,因為現在需要快速或棕色中的至少一個,并且對這些術語的搜索將與原始查詢不同地打分。` `((quick AND fox) OR (brown AND fox) OR fox) AND NOT news` `此表單現在正確復制原始查詢的邏輯,但相關性評分與原始查詢具有很少相似性。` `相反,使用匹配查詢重寫的同一查詢將如下所示:` `{` `"bool"``: {` `"must"``:???? {?``"match"``:?``"fox"`?????????`},` `"should"``:?? {?``"match"``:?``"quick brown"`?`},` `"must_not"``: {?``"match"``:?``"news"`????????`}` `}` `}` | ### 分組 多個術語或子句可以與括號組合在一起,形成子查詢: | `(quick OR brown) AND fox` | 組可用于定位特定字段,或用于提高子查詢的結果: | `status:(active OR pending) title:(full text search)^``2` | ### 保留字符 如果您需要在查詢中使用作為運算符的任何字符(而不是運算符),則應使用前用反斜杠轉義它們。 例如,要搜索(1 + 1)= 2,您需要將查詢寫為\(1 \ +1 \)\ = 2。 保留字符為:+ - = && || > <! (){} [] ^“?*?:\ / 無法正確轉義這些特殊字符可能會導致語法錯誤,阻止您的查詢運行。 | `請看這里:` `空格也可以是保留字符。 例如,如果你有一個同義詞列表將“wi fi”轉換為“wifi”,query_string搜索“wi fi”將失敗。` `查詢字符串解析器會將您的查詢解釋為搜索“wi OR fi”,而存儲在索引中的條件實際上是“wifi”。` `轉義空格將保護它不被查詢字符串解析器,如:“wi \ fi”。` | ### 空查詢 如果查詢字符串為空或僅包含空格,則查詢將生成空結果集。
                  <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>

                              哎呀哎呀视频在线观看