<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之旅 廣告
                # Java API改變 原文鏈接 : [https://www.elastic.co/guide/en/elasticsearch/reference/5.0/breaking_50_java_api_changes.html#_changes_to_query_builders](https://www.elastic.co/guide/en/elasticsearch/reference/5.0/breaking_50_java_api_changes.html#_changes_to_query_builders) 譯文鏈接 : [http://www.apache.wiki/pages/viewpage.action?pageId=4260805](http://www.apache.wiki/pages/viewpage.action?pageId=4260805) 貢獻者 : [片刻](/display/~jiangzhonglian) ## 傳輸客戶端已移動 Java傳輸客戶端已移至其自己的模塊,可以使用以下方式引用: ``` <dependency> <groupId> org.elasticsearch.client </ groupId> <artifactId> transport </ artifactId> <version> 5.0.0 </ version> </ dependency> ``` 傳輸客戶端現在使用以下代碼段創建: ``` TransportClient client = new PreBuiltTransportClient(Settings.EMPTY) .addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName("host1"), 9300)) .addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName("host2"), 9300)); ``` 有關更多信息,請參閱[Java客戶端文檔](https://www.elastic.co/guide/en/elasticsearch/client/java-api/5.0/java-api.html) ## 已刪除計數API 已棄用的計數api已從Java api中刪除,請改用search api并將大小設置為0。 以下調用 ``` client.prepareCount(indices).setQuery(query).get(); ``` 可以替換 ``` client.prepareSearch(indices).setSource(new SearchSourceBuilder().size(0).query(query)).get(); ``` ## Suggest?API已刪除 suggest?API已從Java API中刪除,在搜索 API 中使用建議選項,它已針對僅建議請求進行了優化。 下面調用 ``` client.prepareSuggest(indices).addSuggestion("foo", SuggestBuilders.completionSuggestion("field").text("s")).get(); ``` 可以替換 ``` client.prepareSearch(indices).suggest(new SuggestBuilder().addSuggestion("foo", SuggestBuilders.completionSuggestion("field").text("s"))).get(); ``` ## Elasticsearch將不再檢測日志實現 Elasticsearch現在使用Log4j記錄日志。以前,如果Log4j不在類路徑上,它會努力降級到SLF4J或Java日志記錄。現在,如果沒有Log4j 2 API,它將無法工作。當使用Java客戶端時,log4j-over-slf4j橋應該工作。 log4j-1.2-api網橋用于仍然使用Log4j 1 API的第三方依賴項。 Elasticsearch服務器現在僅支持由log4j2.properties配置的Log4j 2,并且如果Log4j不存在,它將失敗。 ## Groovy依賴 在以前的Elasticsearch版本中,Groovy腳本功能依賴于org.codehaus.groovy:groovy-all?手動。除了引入Groovy語言之外,這還提供了一大套功能,在Elasticsearch中腳本不需要這些功能。除了管理這樣大的依賴性的固有困難之外,這還增加了用于安全問題的表面積。這種依賴已經減少到核心Groovy語言org.codehaus.groovy:groovy??手動。 ## DocumentAlreadyExistsException已刪除 DocumentAlreadyExistsException被刪除,并且拋出VersionConflictException(具有更好的錯誤描述)。這將影響使用IndexRequest.opType()?或IndexRequest.create()?來對文檔進行索引的代碼(如果它不存在)。 ## writeConsistencyLevel在寫請求時刪除 在以前的Elasticsearch版本中,各種寫入請求都有setWriteConsistencyLevel方法來設置寫入操作的分片一致性級別。然而,寫一致性的語義是不明確的,因為這只是一個操作前檢查,以確保在操作開始之前指定數量的分片可用。寫一致性級別不保證在操作完成時將數據復制到這些數量的副本。這些寫請求的setWriteConsistencyLevel方法已更改為setWaitForActiveShards,它可以獲取所有分片副本的分片副本或ActiveShardCount.ALL的總數。默認值是在繼續操作之前等待主分片處于活動狀態。有關更多詳細信息,請參閱有關[等待活動碎片](https://www.elastic.co/guide/en/elasticsearch/reference/5.0/docs-index_.html#index-wait-for-active-shards)的部分。 此更改會影響IndexRequest,IndexRequestBuilder,BulkRequest,BulkRequestBuilder,UpdateRequest,UpdateRequestBuilder,DeleteRequest和DeleteRequestBuilder。 ## 查詢構建器的更改 ### BoostingQueryBuilder 刪除強制正/負查詢的設置器。這兩個參數現在必須在施工時提供,并且必須是非空的。 ### SpanContainingQueryBuilder 刪除了強制性大/小內部跨度查詢的設置器。這兩個參數現在必須在施工時提供,并且必須是非空的。相應地更新QueryBuilders中的靜態工廠方法。 ### SpanOrQueryBuilder 通過在構造函數中強制使用初始子句,確保查詢至少包含一個子句。重命名方法將子句(SpanQueryBuilder)中的子句添加到addClause(SpanQueryBuilder)。 ### SpanNearQueryBuilder 刪除強制性斜坡參數的setter,需要在構造函數中設置。還要確保查詢包含至少一個子句,使初始子句在構造函數中是必需的。相應地更新QueryBuilders中的靜態工廠方法。重命名方法將子句(SpanQueryBuilder)中的子句添加到addClause(SpanQueryBuilder)。 ### SpanNotQueryBuilder 刪除強制包含/排除span查詢子句的setter,需要在構造函數中設置。更新了QueryBuilders中的靜態工廠方法并進行相應的測試。 ### SpanWithinQueryBuilder 刪除了強制性大/小內部跨度查詢的設置器。這兩個參數現在必須在施工時提供,并且必須是非空的。相應地更新QueryBuilders中的靜態工廠方法。 ### WrapperQueryBuilder 刪除wrapperQueryBuilder(byte [] source,int offset,int length)。而只需使用wrapperQueryBuilder(byte [] source)。相應地更新QueryBuilders中的靜態工廠方法。 ### QueryStringQueryBuilder 在表單中刪除了使用字段(字符串字段)方法傳遞boost值的能力。字段^ 2。請改用字段(String,float)方法。 ### Operator 從MatchQueryBuilder,QueryStringQueryBuilder,SimpleQueryStringBuilder和CommonTermsQueryBuilder中刪除了名為Operator的枚舉,以便使用org.elasticsearch.index.query.Operator中定義的枚舉,以便合并代碼庫并避免重復。 ### queryName和boost支持 支持queryName和boost已經精簡到所有的查詢。這是一個破壞性的變化,直到查詢作為序列化的json而不是Streamable格式通過網絡發送。事實上,當額外的字段添加到查詢的json表示時,較舊的節點在找到未知字段時可能會引發錯誤。 ### InnerHitsBuilder InnerHitsBuilder現在有一個專用的addParentChildInnerHits和addNestedInnerHits方法來區分嵌套與父/子文檔的內部命中。此更改使類型/路徑參數是必需的。 ### MatchQueryBuilder 將MatchQueryBuilder.Type和MatchQueryBuilder.ZeroTermsQuery枚舉移動到MatchQuery.Type。還重用了新的Operator的枚舉。 ### MoreLikeThisQueryBuilder 已移除 `MoreLikeThisQueryBuilder.Item#id(String id)`,?`Item#doc(BytesReference doc)`,`Item#doc(XContentBuilder doc)`.?使用提供的構造函數。 刪除 MoreLikeThisQueryBuilder#addLike?贊成在建設時提供的文本和/或項目。現在使用數組而不是列表。 刪除 MoreLikeThisQueryBuilder#addUnlike?贊成使用不同的方法,現在取數組作為參數,而不是以前使用的列表。 廢棄的文檔?`docs(Item... docs)`,?`ignoreLike(Item... docs)`,?`ignoreLike(String... likeText)`,?`addItem(Item... likeItems)?`已被刪除。 ### GeoDistanceQueryBuilder 刪除lon() ?和lat() ?值的各個設置器,這兩個值應使用point(lon,lat) ?一起設置。 ### GeoDistanceRangeQueryBuilder 為了(Object ...)和從(Object ...)移除setters,只有兩個允許的輸入參數(String,Number)。刪除中心點的設置器(point()?,geohash()?),因為參數是必需的,并且應該已在構造函數中設置。還刪除lt(),lte(),gt(),gte()?的setter,因為它們都可以被等價調用到/ from()?和inludeLower()?/ includeUpper()?。 ### GeoPolygonQueryBuilder 需要在構造函數中指定多邊形的外殼,而不是逐點添加。這啟用驗證,但是需要刪除addPoint()?方法。 ### MultiMatchQueryBuilder 將MultiMatchQueryBuilder.ZeroTermsQuery枚舉移動到MatchQuery.ZeroTermsQuery。還重用了新的Operator的枚舉。 在表單中刪除了使用字段(字符串字段)方法傳遞boost值的能力。字段^ 2。請改用字段(String,float)方法。 ### MissingQueryBuilder 已刪除2.2.0中已棄用的MissingQueryBuilder。作為替代,在mustNot()子句中使用ExistsQueryBuilder。因此,不使用新的ExistsQueryBuilder(name)現在使用新的BoolQueryBuilder()?。mustNot(new ExistsQueryBuilder(name))。 ### NotQueryBuilder 刪除了在2.1.0中棄用的NotQueryBuilder。作為替換使用BoolQueryBuilder添加了mustNot()子句。所以,而不是使用新的NotQueryBuilder(過濾器)現在使用新的BoolQueryBuilder()?。mustNot(filter)。 ### TermsQueryBuilder 刪除termLookup()?的setter,使它只能在構造時使用TermsLookup對象或單個值。還將TermsLookup(lookupIndex,lookupType,lookupId,lookupPath)的各個設置移動到單獨的TermsLookup類,僅使用構造函數,并在那里移動檢查。已移除TermsLookupQueryBuilder以支持TermsQueryBuilder。 ### FunctionScoreQueryBuilder 添加方法已刪除,所有過濾器和函數必須作為構造函數參數提供,方法是創建一個FunctionScoreQueryBuilder.FilterFunctionBuilder對象數組,每個過濾器/函數對包含一個元素。 scoreMode和boostMode只能使用相應的枚舉成員而不是字符串值提供:請參閱FilterFunctionScoreQuery.ScoreMode和CombineFunction。 CombineFunction.MULT已重命名為MULTIPLY。 ### IdsQueryBuilder 為了簡單起見,只剩下一種將id添加到現有列表(默認為空)的方法:addIds(String ...) ### ShapeBuilders InternalLineStringBuilder被刪除贊成LineStringBuilder,InternalPolygonBuilder贊成PolygonBuilder`和Ring已經替換為LineStringBuilder。此外,抽象基類BaseLineStringBuilder和BasePolygonBuilder haven已經與它們相應的實現合并。 ### RescoreBuilder RecoreBuilder.Rescorer與RescoreBuilder合并,現在是一個抽象超類。 QueryRescoreBuilder目前是它唯一的實現。 ### PhraseSuggestionBuilder 內部DirectCandidateGenerator類已移出到其自己的類DirectCandidateGeneratorBuilder。 ### SortBuilders FieldSortBuilder,GeoDistanceSortBuilder和ScriptSortBuilder中的sortMode設置器現在接受SortMode枚舉,而不是String常量。此外,getter返回相同的枚舉類型。 ### SuggestBuilder setText方法已更改為setGlobalText,以使意圖更清楚,并已添加了一個getGlobalText方法。 addSuggestion方法現在需要用戶指定的建議名稱,以前在每個建議的ctor中使用。 ### SuggestionBuilder 字段設置器已刪除。相反,字段名稱需要指定為構造函數參數。 ## SearchSourceBuilder 所有采用XContentBuilder,BytesReference Map &lt;String,Object&gt;或bytes []的方法已被刪除,以便為該特征提供相關的構建器對象(例如HighlightBuilder,AggregationBuilder,SuggestBuilder)。這意味著所有搜索請求現在可以在調用時驗證,這會導致更清晰的錯誤。 defaultResourceWindowSize(int)方法已刪除。窗口大小應該在所有RescoreBuilder對象上顯式設置。 ## SearchRequestBuilder 所有采用XContentBuilder,BytesReference Map &lt;String,Object&gt;或bytes []的方法已被刪除,以便為該特征提供相關的構建器對象(例如HighlightBuilder,AggregationBuilder,SuggestBuilder)。這意味著所有搜索請求現在可以在調用時驗證,這會導致更清晰的錯誤。 所有的熒光筆方法已被刪除,有利于單個highlighter(HighlightBuilder)方法。 setExtraSource(SearchSourceBuilder)方法已刪除。 setTemplateSource(String)和setTemplateSource(BytesReference)方法已刪除。請改用setTemplate(Template)。 setRescorer(RescoreBuilder)和setRescorer(RescoreBuilder,int)的setRescorer(Rescorer)和setRescorer(Rescorer,int) ## SearchRequest 所有源方法已刪除,有利于單個源(SearchSourceBuilder)方法。這意味著所有搜索請求現在可以在調用時驗證,這會導致更清晰的錯誤。 所有extraSource方法已刪除。 所有模板方法已刪除,有利于新的搜索模板API。新的SearchTemplateRequest現在接受模板和SearchRequest,并且必須使用新的SearchTemplateAction操作執行。 ## SearchResponse 字符串字段的排序值現在返回為java.lang.String對象,而不是org.elasticsearch.common.text.Text。 ## AggregationBuilder 已經刪除了采用XContentBuilder,BytesReference Map &lt;String,Object&gt;或bytes []的所有方法,以提供相關的構建器對象(即subAggregation(AggregationBuilder)或subAggregation(PipelineAggregationBuilder)?)。這意味著所有請求現在可以在調用時驗證,這會導致更清晰的錯誤。 ## ValidateQueryRequest 已經去除了`source(QuerySourceBuilder)`,?`source(Map)`,?`source(XContentBuilder)`,?`source(String)`,?`source(byte[])`,?`source(byte[], int, int)`,?`source(BytesReference)`?和?`source()`??有利于使用?`query(QueryBuilder)`?和?`query()` ## ValidateQueryRequestBuilder setSource()?方法已被刪除,贊成使用?setQuery(QueryBuilder) ## 解釋請求 已經刪除了`source(QuerySourceBuilder)`,?`source(Map)`,?`source(BytesReference)`?和?`source()`以支持使用?`query(QueryBuilder)`?和?`query()` ## ExplainRequestBuilder setQuery(BytesReference)?方法已被刪除,有利于使用?setQuery(QueryBuilder) ## ClusterStatsResponse 從OsStats中刪除了getMemoryAvailable方法,可以先調用`clusterStatsResponse.getNodesStats().getOs().getMemoryAvailable()`.?它現在被替換為`clusterStatsResponse.getNodesStats().getOs().getMem()`?這暴露了?`getTotal()`,?`getFree()`,`getUsed()`,?`getFreePercent()`?和?`getUsedPercent()`. ## setRefresh(boolean)已被刪除 setRefresh(boolean)已被刪除,有利于setRefreshPolicy(RefreshPolicy),因為現在有三個選項(NONE,IMMEDIATE和WAIT_FOR)。 setRefresh(IMMEDIATE)具有與setRefresh(true)相同的行為。有關更多信息,請參閱setRefreshPolicy的javadoc。 ## 刪除屬性支持 一些Java API(例如,IndicesAdminClient#setSettings)將支持Java屬性語法(行分隔的鍵=值對)。此支持已刪除。 ## 渲染搜索模板Java API已刪除 已刪除渲染搜索模板Java API(包括RenderSearchTemplateAction,RenderSearchTemplateRequest和RenderSearchTemplateResponse),以支持搜索模板Java API中的新模擬選項。此搜索模板API現在包含在lang-mustache模塊中,并且必須在SearchTemplateRequest對象上設置模擬標志。 ## AnalyzeRequest 為了使用`addTokenFilter(String)`/`addTokenFilter(Map)?`和`addCharFilter(String)`/`addCharFilter(Map)`,刪除了tokenFilters(String...)和charFilters(String...)? ## AnalyzeRequestBuilder setTokenFilters(String...)?和setCharFilters(String...)?方法已被刪除,有利于使用`addTokenFilter(String)`/`addTokenFilter(Map)`和`addCharFilter(String)`/`addCharFilter(Map)`? ## ClusterHealthRequest waitForRelocatingShards(int)?方法已被刪除,贊成使用`waitForNoRelocatingShards(boolean)`?,而是使用布爾標志來表示集群健康操作是否應該在返回之前等待集群中沒有重定位碎片。 ## ClusterHealthRequestBuilder setWaitForRelocatingShards(int)方法已被刪除,有利于setWaitForNoRelocatingShards(boolean),而是使用布爾標志來表示集群健康操作是否應該在返回之前等待集群中沒有重定位碎片。 ## 用于快照/恢復的BlobContainer接口 一些方法已從BlobContainer接口中刪除Snapshot / Restore存儲庫。特別地,已經去除了以下三種方法: 1. `deleteBlobs(Collection&lt;String&gt;)`?(use?`deleteBlob(String)`?instead) 2. `deleteBlobsByPrefix(String)`?(use?`deleteBlob(String)`?instead) 3. `writeBlob(String, BytesReference)`?(use?`writeBlob(String, InputStream, long)`?instead) 刪除多個blob作為參數的deleteBlob方法已被刪除,因為無法對刪除所有blob或刪除它們進行原子保證,并且在這種情況下的異常處理是不明確的,最好留給調用者。因此,所有刪除blob調用都使用單個deleteBlob(String)?方法。 額外的writeBlob方法沒有為接口提供真正的優勢,并且對writeBlob(blobName, bytesRef)?的所有調用都可以替換為: ``` try (InputStream stream = bytesRef.streamInput()) { blobContainer.writeBlob(blobName, stream, bytesRef.length()); } ``` 對于BlobContainer接口的任何自定義實現,必須刪除這三個方法。 ## 已刪除NodeBuilder NodeBuilder已刪除。雖然在應用程序中直接使用Node不是官方支持,它仍然可以用Node(Settings)?構造函數構造。
                  <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>

                              哎呀哎呀视频在线观看