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

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                # _all field 原文鏈接 :?[https://www.elastic.co/guide/en/elasticsearch/reference/5.3/mapping-all-field.html](https://www.elastic.co/guide/en/elasticsearch/reference/5.3/mapping-all-field.html) 譯文鏈接 :?[http://www.apache.wiki/display/Elasticsearch/_all+field](http://www.apache.wiki/display/Elasticsearch/_all+field) 貢獻者 :?[朱彥安](/display/~zhuyanan),[ApacheCN](/display/~apachecn),[Apache中文網](/display/~apachechina) 該 **_all?**字段是一個特殊的全能字段,它將所有其他字段的值連接成一個大字符串,使用空格作為分隔符,然后對其進行分詞和索引,但不存儲。 這意味著它可以被檢索,但不能取回。 該 **_all?**字段允許您在文檔中搜索,并不需要知道哪個字段包含該值。 這使得它成為開始使用新數據集時的有用選項。 例如 :? ``` curl -XPUT 'localhost:9200/my_index/user/1?pretty' -H 'Content-Type: application/json' -d' # 1 { "first_name": "John", "last_name": "Smith", "date_of_birth": "1970-10-24" } ' curl -XGET 'localhost:9200/my_index/_search?pretty' -H 'Content-Type: application/json' -d' { "query": { "match": { "_all": "john smith 1970" } } } ' ``` | 1 | 該?_all 字段包含項: [?"john",?"smith",?"1970",?"10",?"24"?] | 注意 : 所有值被視為字符串 上述示例中的 **date_of_birth** 字段被視為 **date** 字段,因此將索引表示 **1970-10-24 00:00:00 UTC** 的單個項。 然而,**_all** 字段將所有值視為字符串,因此日期值被索引成三個字符串項 : “**1970**”,“**24**”,“**10**”。 注意,**_all** 字段將每個字段的原始值作為字符串組合。 它不會組合來自每個字段的項。 該 **_all** 字段是一個文本字段,并接受與其他字符串字段相同的參數,包括 **analyzer**,**term_vectors**,**index_options?**和 **store**。 該 **_all** 字段是有用的,特別是當使用簡單的過濾來探索新的數據時。 但是,通過將字段值連接成一個大字符串,**_all** 字段將丟失短字段(更相關)和長字段(較不相關)之間的區別。 對于搜索相關性很重要的用例,最好專門查詢各個字段。 該 **_all** 字段并不輕量 : 它需要額外的 **CPU?**并使用更多的磁盤空間。 如果不需要,它可以完全禁用或個別字段定制。 ### 在查詢中使用 _all 字段 **query_string** 和 **simple_query_string** 查詢默認查詢 **_all** 字段,除非指定了另一個字段 :? ``` ?curl -XGET 'localhost:9200/_search?pretty' -H 'Content-Type: application/json' -d' { "query": { "query_string": { "query": "john smith 1970" } } } ' ``` 同樣的在[URI搜索請求](https://www.elastic.co/guide/en/elasticsearch/reference/current/search-uri-request.html)中??q= parameter(內部改寫為query_string):? ``` GET _search?q=john+smith+1970 ``` 其他查詢(如?[match](https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-match-query.html)?和?[term](https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-term-query.html)?查詢)要求您按照?[第一個示例](https://www.elastic.co/guide/en/elasticsearch/reference/current/mapping-all-field.html)?顯式指定 **_all?**字段。 ### 禁用 _all 字段 通過將 **enabled?**設置為 **false**,可以對 **_all?**字段完全禁用: ``` ?curl -XPUT 'localhost:9200/my_index?pretty' -H 'Content-Type: application/json' -d' { "mappings": { "type_1": { # 1 "properties": {...} }, "type_2": { # 2 "_all": { "enabled": false }, "properties": {...} } } } ' ``` | 1 | type_1 中的 _all 字段已啟用。 | | 2 | type_2 中的 _all 字段已完全禁用. | 如果 **_all** 字段被禁用,則 **URI?**搜索請求和 **query_string?**和 **simple_query_string?**查詢將無法將其用于查詢(請參閱在查詢中使用 **_all?**字段)。 您可以將它們配置為使用與?**index.query.default_field?**設置不同的字段 :? ``` ?curl -XPUT 'localhost:9200/my_index?pretty' -H 'Content-Type: application/json' -d' { "mappings": { "my_type": { "_all": { "enabled": false # 1 }, "properties": { "content": { "type": "text" } } } }, "settings": { "index.query.default_field": "content" # 2 } } ' ``` | 1 | _all字段對于my_type類型是禁用的。 | | 2 | query_string查詢將默認查詢此索引中的content字段。 | ### 排除 _all 的字段 可以使用?[include_in_all](https://www.elastic.co/guide/en/elasticsearch/reference/current/include-in-all.html)?設置從 **_all** 字段中包含或排除各個字段。 ### 索引提升和 _all 字段 使用?[boost](https://www.elastic.co/guide/en/elasticsearch/reference/current/mapping-boost.html)?參數,索引時可以提升個別字段。 **_all** 字段考慮到這些提升 :? ``` curl -XPUT 'localhost:9200/myindex?pretty' -H 'Content-Type: application/json' -d' { "mappings": { "mytype": { "properties": { "title": { # 1 "type": "text", "boost": 2 }, "content": { # 2 "type": "text" } } } } } ' ``` | 1 2 | 當查詢 **_all** 字段時,源于 **title** 字段的字符是源于 **content** 字段的字符的兩倍相關。 | 警告 : 使用 **_all** 字段的在索引時 **boost** 對查詢性能有顯著的影響。 通常更好的解決方案是單獨查詢字段,可在查詢時 **boost**。 ### 自定義 _all 字段 雖然每個索引只有一個 **_all** 字段,但 **copy_to?**參數允許創建多個自定義 **_all?**字段。 例如,**first_name?**和 **last_name?**字段可以組合到 **full_name?**字段中 :? ``` curl -XPUT 'localhost:9200/myindex?pretty' -H 'Content-Type: application/json' -d' { "mappings": { "mytype": { "properties": { "first_name": { "type": "text", "copy_to": "full_name" # 1 }, "last_name": { "type": "text", "copy_to": "full_name" # 2 }, "full_name": { "type": "text" } } } } } ' curl -XPUT 'localhost:9200/myindex/mytype/1?pretty' -H 'Content-Type: application/json' -d' { "first_name": "John", "last_name": "Smith" } ' curl -XGET 'localhost:9200/myindex/_search?pretty' -H 'Content-Type: application/json' -d' { "query": { "match": { "full_name": "John Smith" } } } ' ``` | 1 2 | **first_name** 和 **last_name** 值將復制到 **full_name** 字段。 | ### 高亮顯示和 _all 字段 如果原始字符串值可用,則字段只能用于?[高亮](https://www.elastic.co/guide/en/elasticsearch/reference/current/search-request-highlighting.html)?顯示,從?[_source](https://www.elastic.co/guide/en/elasticsearch/reference/current/mapping-source-field.html)?字段或作為存儲字段。 **_all** 字段不在 **_source?**字段中,默認情況下不存儲,因此無法高亮顯示。 有兩個選項。存儲[?_all?](https://www.elastic.co/guide/en/elasticsearch/reference/current/mapping-all-field.html#all-field-store)字段或高亮顯示?[原始字段?](https://www.elastic.co/guide/en/elasticsearch/reference/current/mapping-all-field.html#all-highlight-fields)。 ### 存儲 _all 字段 如果存儲設置為 **true**,則可以檢索原始字段值,并且可以高亮顯示 :? ``` curl -XPUT 'localhost:9200/myindex?pretty' -H 'Content-Type: application/json' -d' { "mappings": { "mytype": { "_all": { "store": true } } } } ' curl -XPUT 'localhost:9200/myindex/mytype/1?pretty' -H 'Content-Type: application/json' -d' { "first_name": "John", "last_name": "Smith" } ' curl -XGET 'localhost:9200/_search?pretty' -H 'Content-Type: application/json' -d' { "query": { "match": { "_all": "John Smith" } }, "highlight": { "fields": { "_all": {} } } } ' ``` 當然,存儲 **_all?**字段將使用更多的磁盤空間,因為由于它是其他字段的組合,所以可能會導致奇怪的高亮顯示結果。 **_all** 字段也接受 **term_vector?**和 **index_options?**參數,允許使用快速的矢量熒光筆和貼片熒光筆。 ### 高亮顯示原始字段 您可以查詢 **_all** 字段,但使用原始字段進行高亮顯示,如下所示 :? ``` curl -XPUT 'localhost:9200/myindex?pretty' -H 'Content-Type: application/json' -d' { "mappings": { "mytype": { "_all": {} } } } ' curl -XPUT 'localhost:9200/myindex/mytype/1?pretty' -H 'Content-Type: application/json' -d' { "first_name": "John", "last_name": "Smith" } ' curl -XGET 'localhost:9200/_search?pretty' -H 'Content-Type: application/json' -d' { "query": { "match": { "_all": "John Smith" # 1 } }, "highlight": { "fields": { "*_name": { # 2 "require_field_match": false # 3 } } } } ' ``` | 1 | 查詢檢查 **_all** 字段以查找匹配的文檔。 | | 2 | 在 **_source** 可以使用的兩個名稱字段上執行高亮顯示。 | | 3 | 該查詢未針對 **name** 字段運行,因此將 **require_field_match** 設置為 **false**。 |
                  <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>

                              哎呀哎呀视频在线观看