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

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                [TOC] # 簡介 es是功能非常強大的全文搜索引擎,用它的目的是為了能快速的查詢你想要的數據 基本查詢: 利用es內置查詢條件進行查詢 組合查詢: 把多個基本查詢組合在一起的復合性查詢 過濾: 查詢同時,通過filter條件在不影響打分的情況下篩選出想要的數據 **字段含義** * took:耗費了幾毫秒 * timed_out:是否超時,這里是沒有 * _shards:數據拆成了5個分片,所以對于搜索請求,會打到所有的primary shard(或者是它的某個replica shard也可以) * hits.total:查詢結果的數量,3個document * hits.max_score:score的含義,就是document對于一個search的相關度的匹配分數,越相關,就越匹配,分數也高 * hits.hits:包含了匹配搜索的document的詳細數據 * score: 打分 **基本查詢** * term,terms查詢 * from,size * 返回版本號`_version` * match查詢 * 升序降序 * prefix前綴匹配查詢 * range范圍查詢 * wildcard通配符查詢 * fuzzy模糊查詢 * `more_like_this & more_like_this_field`查詢 # 簡單查詢 創建7個這樣的數據 ~~~ POST /library/books/1 { "title": "elasticsearch", "price":"1", "preview": "books-1", "publish_date": "2015-02-06" } ~~~ 查看數據 ~~~ GET /library/books/_mget { "ids": ["1","2","3","4","5","6","7"] } ~~~ 查看mapping ~~~ GET /library/_mapping ~~~ 簡單查詢 ~~~ # 指定index名以及type名的搜索 GET /library/books/_search?q=title:elasticsearch ~~~ 返回值多條中,會有`_score`這個key,這個值越大就排在前面,這個就叫打分,es認為這個文檔比較有價值 ~~~ # 指定index名沒有type名的搜索 GET /library/_search?q=title:mongo ~~~ ~~~ # 既沒有index名也沒有type名的搜索 GET /_search?q=title:elasticsearch ~~~ # term查詢 查詢某個字段里有某個關鍵詞的文檔 ~~~ //books GET /library/books/_search { "query": { "term": { "preview": "es" } } } ~~~ ## `minimum_should_match`:某個字段里有多個關鍵詞的文檔 `minimum_should_match`: 最小匹配集: 1.說明兩個關鍵詞里最少有一個, 2.說明文檔里這兩個關鍵詞都得存在 ~~~ GET /library/books/_search { "query": { "bool": { "minimum_should_match": 2, "should": [ { "term": { "preview": "books" } }, { "term": { "preview": "1" } }, { "term": { "preview": "2" } } ] } } } ~~~ ## form和size:控制查詢返回的數量 form和size 相當于mysql里的limit from: 從哪個結果開始返回 size: 定義返回最大的結果數 ~~~ GET /library/books/_search?q=title:elasticsearch GET /library/books/_search { "from": 1, "size": 2, "query": { "term": { "title": "elasticsearch" } } } ~~~ ## `_version`:返回版本號 ~~~ GET /library/books/_search { "version": true, "query": { "term": { "preview": "books" } } } ~~~ # queryString查詢 query里面的他會進行分析,進行分詞,然后查詢. ~~~ POST blog/hello/_search { "query": { "term": { "default_field": "title", "query": "今天在修公路" } } } ~~~ 比如沒有這整個,但是如果有修這個能匹配到,也能搜索出來. 他是一種先對這個分析,然后在查詢的 # match查詢 match查詢可以接收文字,數字日期等數據類型 match跟term區別是,match查詢的時候,elasticsearch會根據你給定的字段提供合適的分析器,而term查詢不會有分析器分析過程 ~~~ GET /library/books/_search { "query": { "match": { "preview": "es" } } } GET /library/books/_search { "query": { "match": { "price": 3 } } } ~~~ # `match_phrase` 跟全文檢索相對應,相反,全文檢索會將輸入的搜索串拆解開來,去倒排索引里面去一一匹配,只要能匹配上任意一個拆解后的單詞,就可以作為結果返回 phrase search,要求輸入的搜索串,必須在指定的字段文本中,完全包含一模一樣的,才可以算匹配,才能作為結果返回 短語查詢,slop定義的是關鍵詞之間間隔多少未知單詞 ~~~ GET /library/books/_search { "query": { "match_phrase": { "preview": { "query": "books,es", "slop": 3 } } } } ~~~ `multi_match`查詢 可以指定多個字段 比如查詢title和preview這兩個字段里都包含Elasticsearch關鍵詞的文檔 ~~~ GET /library/books/_search { "query": { "multi_match": { "query": "es", "fields": ["title","preview"] } } } ~~~ # field指定返回的字段 注意只能返回store為yes的字段 ~~~ GET /library/books/_search { "fields": ["preview","title"], "query": { "match": { "preview": "es" } } } ~~~ # partial_fields控制加載字段 include表示包含 exclude表示排除 ~~~ GET /library/books/_search { "partial_fields": { "partial": { "include": ["preview"], "exclude": ["title,price"] } }, "query": { "match_all": {} } } ~~~ 還可以加通配符* ~~~ GET /library/books/_search { "partial_fields": { "partial": { "include": ["pr*"], "exclude": ["tit*"] } }, "query": { "match_all": {} } } ~~~ # sort排序 通過sort把結果排序 desc降序 asc升序 ~~~ GET /library/books/_search { "query": { "match_all": {} }, "sort": [ { "price": { "order": "desc" } } ] } ~~~ # prefix前綴匹配查詢 prefix ~~~ GET /library/books/_search { "query": { "prefix": { "title": { "value": "e" } } } } ~~~ # range控制范圍 range查詢:范圍查詢 有from,to,include_lower,include_upper,boots這些參數 include_lower: 是否包含范圍的左邊界,默認是true include_upper: 是否包含范圍的右邊界,默認是true ~~~ GET /library/books/_search { "query": { "range": { "price": { "from": "10", "to": "20", "include_lower": true, "include_upper": false } } } } ~~~ # wildcard通配符查詢 允許你使用通配符`*`和?來進行查詢 `*`代表一個或多個字符 ?僅代表一個字符 注意:這個查詢很影響性能 ~~~ GET /library/books/_search { "query": { "wildcard": { "preview": "book*" } } } ~~~ ~~~ GET /library/books/_search { "query": { "wildcard": { "preview": "boo?s" } } } ~~~ # fuzzy模糊查詢 value查詢的關鍵字 boost設置查詢的權值,默認為1.0 min_similarity:設置匹配的最小相似度,默認值是0.5,對于字符串取值為0-1(包括0和1),對于數值,取值可能大于1,對于日期型取值為1d,2d,1m這樣,1d就代表一天 prefix_length:指明區分詞項的共同前綴長度,默認是0 max_expansions:指明查詢中的詞項可擴展的數目,默認可無限大 ~~~ GET /library/books/_search { "query": { "fuzzy": { "preview": "php" } } } ~~~ ~~~ GET /library/books/_search { "query": { "fuzzy": { "preview": { "value": "php", "min_similarity": 0.5 } } } } ~~~ # fuzzy_like_this查詢與給定內容相似的所有文檔 查詢得到與給定內容相似的所有文檔 fields:字段組,默認是`_all` like_text: 設置關鍵詞 ignore_tf:設置忽略詞項的頻次,默認是false max_query_terns:指明在生成的查詢中查詢詞項的最大數目.默認是25 min_similarity:指明區分詞項最小的相似度,默認是0.5 prefix_length:指明區分詞項共同前綴的長度,默認是0 boost:設置權值,默認是1.0 analyze:指明用于分析給定內容的分析器 ~~~ GET /library/books/_search { "query": { "fuzzy_like_this": { "fields": ["preview"], "like_text": "php", "min_similarity": 0.5, "prefix_length": 0.2 } } } ~~~ # fuzzy_like_this_field查詢 只作用在一個字段里 其他與fuzzy_like_this功能一樣 ~~~ GET /library/books/_search { "query": { "fuzzy_like_this_field": { "preview": { "like_text": "php", "min_similarity": 0.5, "prefix_length": 0.2 } } } } ~~~ # more_like_this查詢 fields:定義字段組,默認是`_all` like_text:定義要查詢的關鍵詞 percent_terms_to_match: 該參數指明一個文檔必須匹配多大比例的詞項才能被視為相似,默認值是0.3,意思30%比例 min_term_freq:該參數指明在生成的查詢中查詢詞項的最大數目.默認為25 stop_words:該參數指明將被忽略的單詞集合 min_doc_freq:該參數指明詞項應至少在多個文檔中出現才不會被忽略.more是5 max_doc_freq:該參數指明出現詞項的最大數目,以避免詞項被忽略,默認是無窮大 min_word_len: 該參數指明單個單詞的最小長度,低于該值的單詞將被忽略,默認值是0 max_word_len: 該參數指明單個單詞的最大長度,高于該值的單詞將被忽略,默認是無限大 boost_terms: 該參數指明提升每個單詞的權重時使用的權值.默認是1 boost: 指明提升一個查詢的權值,默認是1.0 analyer:指定用于分析的分析器 ~~~ GET /library/books/_search { "query": { "more_like_this": { "fields": ["preview"], "like_text": "php", "min_term_freq": 1, "min_doc_freq": 1 } } } ~~~ # more_like_this_field查詢 只作用一個字段里 其他與more_like_this功能一樣 ~~~ GET /library/books/_search { "query": { "more_like_this_field": { "preview": { "like_text": "php", "min_term_freq": 1, "min_doc_freq": 1 } } } } ~~~
                  <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>

                              哎呀哎呀视频在线观看