<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 功能強大 支持多語言、二開方便! 廣告
                ## 一、概述 ### **原生API的缺點** 需要自己把對象序列化為json存儲; 查詢到結果也需要自己反序列化為對象; Spring Data Elasticsearch是Spring Data項目下的一個子模塊,提供了Spring Data的統一編程模型,簡化了應用的開發;因此,平臺中,我們與Elasticsearch的交互基于Spring Data Elasticsearch的api; >[danger] Spring Data 的使命是給各種數據訪問提供統一的編程接口,不管是關系型數據庫(如MySQL),還是非關系數據庫(如Redis),或者類似Elasticsearch這樣的索引數據庫。從而簡化開發人員的代碼,提高開發效率; ## 二、定義對象 將document映射為Java對象定義; #### **類定義級別注解:** @Document: indexName屬性,指定存儲數據的索引; #### **字段定義級別注解:** @Id:用來注解身份識別的字段; @Field:name屬性,指定Elasticsearch Document的字段名稱,如果不設定,就使用java的字段名了; type屬性,字段的類型,需要注意字符串類型字段,包括了keyword和text兩種,keyword類型的字段不進行分詞,是完全匹配,而text類型字段,則是進行分詞,當某個字段需要完整匹配不做分詞的時候,則定義為keyword,如果都需要,那簡單,直接定義兩個字段,分別定義為text和keywrod即可; store屬性,是否存儲在Elasticsearch,默認是false; analyzer,指定分詞器名稱; searchAnalyzer,搜索分詞器名稱; normalizer,用在keyword中,基本等同于analyzer; ## 三、操作 通過Spring Data Elasticsearch與Elasticsearch進行互操作,主要有兩種方式,一種是?Elasticsearch Repositories接口,另一種是Elasticsearch Operations接口; ### **Elasticsearch Repositories** 這套接口,是Spring Data實現的一套接口,類似JPA機制運行,包括定義對象,操作對象(CRUD); >[danger] 平臺推薦用這套接口實現數據的維護增加、修改及刪除,以及簡單的查詢,但對于復雜的查詢,建議使用Elasticsearch Operations(SearchOperations); ### **ElasticsearchRestTemplate(Elasticsearch Operations)** 相對于Elasticsearch Repositories接口,當ElasticsearchRestTemplate接口更加底層,它符合[Elasticsearch API](https://www.elastic.co/guide/en/elasticsearch/reference/current/rest-apis.html)規范; 該接口包含了以下幾類子接口,分別承擔不同的任務; * `IndexOperations` 索引級的操作,如索引的增加、刪除等. * `DocumentOperations` 文檔級操作,如新增、刪除等; * `SearchOperations` 專門的檢索操作接口; * `ElasticsearchOperations` 組合了DocumentOperations和SearchOperations兩個接口,提供了IndexOperations接口的引用; 增加索引: ``` IndexQuery indexQuery = new IndexQueryBuilder() .withId(person.getId().toString()) .withObject(person) .build(); String documentId = elasticsearchOperations.index(indexQuery); ``` 查詢索引: ``` Person person = elasticsearchOperations .queryForObject(GetQuery.getById(id.toString()), Person.class); ```
                  <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>

                              哎呀哎呀视频在线观看