[Docs] Add "Using Java Builders" section (#26517)

The current "Building Queries" and "Building Aggregations" pages are
located under the "Supported Apis" section because they are linked to
the "Search API" page.

It should instead be in a dedicated section: this commit adds a new
"Using Java Builders" section and renames few filenames in favor of
more meaningful names.
This commit is contained in:
Tanguy Leroux 2017-09-06 14:06:41 +02:00 committed by GitHub
parent 0c799eedc5
commit ecf39bc0c1
9 changed files with 57 additions and 27 deletions

View File

@ -6,5 +6,3 @@ include::bulk.asciidoc[]
include::search.asciidoc[] include::search.asciidoc[]
include::scroll.asciidoc[] include::scroll.asciidoc[]
include::main.asciidoc[] include::main.asciidoc[]
include::queries.asciidoc[]
include::aggs.asciidoc[]

View File

@ -82,6 +82,7 @@ After this, the `SearchSourceBuilder` only needs to be added to the
include-tagged::{doc-tests}/SearchDocumentationIT.java[search-source-setter] include-tagged::{doc-tests}/SearchDocumentationIT.java[search-source-setter]
-------------------------------------------------- --------------------------------------------------
[[java-rest-high-document-search-request-building-queries]]
===== Building queries ===== Building queries
Search queries are created using `QueryBuilder` objects. A `QueryBuilder` exists Search queries are created using `QueryBuilder` objects. A `QueryBuilder` exists
@ -125,7 +126,7 @@ to the `SearchSourceBuilder` as follows:
include-tagged::{doc-tests}/SearchDocumentationIT.java[search-query-setter] include-tagged::{doc-tests}/SearchDocumentationIT.java[search-query-setter]
-------------------------------------------------- --------------------------------------------------
The <<java-rest-high-search-queries, Search Queries>> page gives a list of all available search queries with The <<java-rest-high-query-builders, Building Queries>> page gives a list of all available search queries with
their corresponding `QueryBuilder` objects and `QueryBuilders` helper methods. their corresponding `QueryBuilder` objects and `QueryBuilders` helper methods.
@ -178,6 +179,7 @@ setters with a similar name (e.g. `#preTags(String ...)`).
Highlighted text fragments can <<java-rest-high-retrieve-highlighting,later be retrieved>> from the `SearchResponse`. Highlighted text fragments can <<java-rest-high-retrieve-highlighting,later be retrieved>> from the `SearchResponse`.
[[java-rest-high-document-search-request-building-aggs]]
===== Requesting Aggregations ===== Requesting Aggregations
Aggregations can be added to the search by first creating the appropriate Aggregations can be added to the search by first creating the appropriate
@ -190,7 +192,7 @@ sub-aggregation on the average age of employees in the company:
include-tagged::{doc-tests}/SearchDocumentationIT.java[search-request-aggregations] include-tagged::{doc-tests}/SearchDocumentationIT.java[search-request-aggregations]
-------------------------------------------------- --------------------------------------------------
The <<java-rest-high-aggregations, Aggregations>> page gives a list of all available aggregations with The <<java-rest-high-aggregation-builders, Building Aggregations>> page gives a list of all available aggregations with
their corresponding `AggregationBuilder` objects and `AggregationBuilders` helper methods. their corresponding `AggregationBuilder` objects and `AggregationBuilders` helper methods.
We will later see how to <<java-rest-high-retrieve-aggs,access aggregations>> in the `SearchResponse`. We will later see how to <<java-rest-high-retrieve-aggs,access aggregations>> in the `SearchResponse`.

View File

@ -1,4 +1,4 @@
[[java-rest-high-aggregations]] [[java-rest-high-aggregation-builders]]
=== Building Aggregations === Building Aggregations
This page lists all the available aggregations with their corresponding `AggregationBuilder` class name and helper method name in the This page lists all the available aggregations with their corresponding `AggregationBuilder` class name and helper method name in the

View File

@ -1,5 +1,5 @@
[[java-rest-high-search-queries]] [[java-rest-high-query-builders]]
=== Building Search Queries === Building Queries
This page lists all the available search queries with their corresponding `QueryBuilder` class name and helper method name in the This page lists all the available search queries with their corresponding `QueryBuilder` class name and helper method name in the
`QueryBuilders` utility class. `QueryBuilders` utility class.

View File

@ -1,4 +1,4 @@
[[java-rest-high-usage]] [[java-rest-high-getting-started]]
== Getting started == Getting started
This section describes how to get started with the high-level REST client from This section describes how to get started with the high-level REST client from
@ -36,7 +36,7 @@ major version.
The javadoc for the REST high level client can be found at {rest-high-level-client-javadoc}/index.html. The javadoc for the REST high level client can be found at {rest-high-level-client-javadoc}/index.html.
[[java-rest-high-usage-maven]] [[java-rest-high-getting-started-maven]]
=== Maven Repository === Maven Repository
The high-level Java REST client is hosted on The high-level Java REST client is hosted on
@ -46,7 +46,7 @@ Central]. The minimum Java version required is `1.8`.
The High Level REST Client is subject to the same release cycle as The High Level REST Client is subject to the same release cycle as
Elasticsearch. Replace the version with the desired client version. Elasticsearch. Replace the version with the desired client version.
[[java-rest-high-usage-maven-maven]] [[java-rest-high-getting-started-maven-maven]]
==== Maven configuration ==== Maven configuration
Here is how you can configure the dependency using maven as a dependency manager. Here is how you can configure the dependency using maven as a dependency manager.
@ -61,7 +61,7 @@ Add the following to your `pom.xml` file:
</dependency> </dependency>
-------------------------------------------------- --------------------------------------------------
[[java-rest-high-usage-maven-gradle]] [[java-rest-high-getting-started-maven-gradle]]
==== Gradle configuration ==== Gradle configuration
Here is how you can configure the dependency using gradle as a dependency manager. Here is how you can configure the dependency using gradle as a dependency manager.
@ -74,7 +74,7 @@ dependencies {
} }
-------------------------------------------------- --------------------------------------------------
[[java-rest-high-usage-maven-lucene]] [[java-rest-high-getting-started-maven-lucene]]
==== Lucene Snapshot repository ==== Lucene Snapshot repository
The very first releases of any major version (like a beta), might have been built on top of a Lucene Snapshot version. The very first releases of any major version (like a beta), might have been built on top of a Lucene Snapshot version.
@ -105,7 +105,7 @@ maven {
} }
-------------------------------------------------- --------------------------------------------------
[[java-rest-high-usage-dependencies]] [[java-rest-high-getting-started-dependencies]]
=== Dependencies === Dependencies
The High Level Java REST Client depends on the following artifacts and their The High Level Java REST Client depends on the following artifacts and their
@ -115,7 +115,7 @@ transitive dependencies:
- org.elasticsearch:elasticsearch - org.elasticsearch:elasticsearch
[[java-rest-high-usage-initialization]] [[java-rest-high-getting-started-initialization]]
=== Initialization === Initialization
A `RestHighLevelClient` instance needs a <<java-rest-low-usage-initialization,REST low-level client builder>> A `RestHighLevelClient` instance needs a <<java-rest-low-usage-initialization,REST low-level client builder>>

View File

@ -24,14 +24,10 @@ the same response objects.
:doc-tests: {docdir}/../../client/rest-high-level/src/test/java/org/elasticsearch/client/documentation :doc-tests: {docdir}/../../client/rest-high-level/src/test/java/org/elasticsearch/client/documentation
include::usage.asciidoc[] include::getting-started.asciidoc[]
include::supported-apis.asciidoc[]
include::apis.asciidoc[] include::java-builders.asciidoc[]
include::apis/index.asciidoc[]
include::migration.asciidoc[] include::migration.asciidoc[]
include::../license.asciidoc[] include::../license.asciidoc[]
:doc-tests!: :doc-tests!:

View File

@ -0,0 +1,32 @@
[[java-rest-high-java-builders]]
== Using Java Builders
The Java High Level REST Client depends on the Elasticsearch core project which provides
different types of Java `Builders` objects, including:
Query Builders::
The query builders are used to create the query to execute within a search request. There
is a query builder for every type of query supported by the Query DSL. Each query builder
implements the `QueryBuilder` interface and allows to set the specific options for a given
type of query. Once created, the `QueryBuilder` object can be set as the query parameter of
`SearchSourceBuilder`. The <<java-rest-high-document-search-request-building-queries, Search Request>>
page shows an example of how to build a full search request using `SearchSourceBuilder` and
`QueryBuilder` objects. The <<java-rest-high-query-builders, Building Search Queries>> page
gives a list of all available search queries with their corresponding `QueryBuilder` objects
and `QueryBuilders` helper methods.
Aggregation Builders::
Similarly to query builders, the aggregation builders are used to create the aggregations to
compute during a search request execution. There is an aggregation builder for every type of
aggregation (or pipeline aggregation) supported by Elasticsearch. All builders extend the
`AggregationBuilder` class (or `PipelineAggregationBuilder`class). Once created, `AggregationBuilder`
objects can be set as the aggregation parameter of `SearchSourceBuilder`. There is a example
of how `AggregationBuilder` objects are used with `SearchSourceBuilder` objects to define the aggregations
to compute with a search query in <<java-rest-high-document-search-request-building-aggs, Search Request>> page.
The <<java-rest-high-aggregation-builders, Building Aggregations>> page gives a list of all available
aggregations with their corresponding `AggregationBuilder` objects and `AggregationBuilders` helper methods.
include::builders/queries.asciidoc[]
include::builders/aggs.asciidoc[]

View File

@ -40,9 +40,9 @@ Java application that uses the `TransportClient` depends on the
`org.elasticsearch.client:transport` artifact. This dependency `org.elasticsearch.client:transport` artifact. This dependency
must be replaced by a new dependency on the high-level client. must be replaced by a new dependency on the high-level client.
The <<java-rest-high-usage,Getting Started>> page shows The <<java-rest-high-getting-started,Getting Started>> page shows
typical configurations for Maven and Gradle and presents the typical configurations for Maven and Gradle and presents the
<<java-rest-high-usage-dependencies, dependencies>> brought by the <<java-rest-high-getting-started-dependencies, dependencies>> brought by the
high-level client. high-level client.
=== Changing the client's initialization code === Changing the client's initialization code

View File

@ -3,19 +3,21 @@
The Java High Level REST Client supports the following APIs: The Java High Level REST Client supports the following APIs:
.Single document APIs Single document APIs::
* <<java-rest-high-document-index>> * <<java-rest-high-document-index>>
* <<java-rest-high-document-get>> * <<java-rest-high-document-get>>
* <<java-rest-high-document-delete>> * <<java-rest-high-document-delete>>
* <<java-rest-high-document-update>> * <<java-rest-high-document-update>>
.Multi-document APIs Multi document APIs::
* <<java-rest-high-document-bulk>> * <<java-rest-high-document-bulk>>
.Search APIs Search APIs::
* <<java-rest-high-search>> * <<java-rest-high-search>>
* <<java-rest-high-search-scroll>> * <<java-rest-high-search-scroll>>
* <<java-rest-high-clear-scroll>> * <<java-rest-high-clear-scroll>>
.Miscellaneous APIs Miscellaneous APIs::
* <<java-rest-high-main>> * <<java-rest-high-main>>
include::apis/index.asciidoc[]