Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ISPN-10064, removing reference to JP-QL for Ickle Queries #6784

Merged
merged 1 commit into from Apr 4, 2019
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
20 changes: 9 additions & 11 deletions documentation/src/main/asciidoc/user_guide/query.adoc
Expand Up @@ -16,7 +16,7 @@ between Java and non-Java clients.

Apart from indexed queries, {brandname} can run queries over non-indexed data (link:#query_indexless[indexless queries]) and over partially indexed data (link:#query_hybrid[hybrid queries]).

In terms of Search APIs, {brandname} has its own query language called _link:#query_ickle[Ickle]_, which is a subset of JP-QL providing extensions for full-text
In terms of Search APIs, {brandname} has its own query language called _link:#query_ickle[Ickle]_, which is string-based and adds support for full-text
querying. The link:#query_dsl[Query DSL] can be used for both embedded and remote java clients when full-text is not required; for Java embedded clients
{brandname} offers the link:#query_hibernatesearch[Hibernate Search Query API] which supports running Lucene queries in the grid, apart from advanced search capabilities
like Faceted and Spatial search.
Expand Down Expand Up @@ -841,13 +841,10 @@ assert cq.getResultSize() == 1;

[[query_apis]]
==== Querying APIs
You can query {brandname} using:

{brandname} allows to query using Lucene queries directly and its own query language called Ickle, a subset of JP-QL with full-text extensions.

In terms of DSL, {brandname} exposes the Hibernate Search DSL (which produces Lucene queries) and has its own DSL which internally generates an Ickle
query.

Finally, when using Lucene or Hibernate Search Query API, it is possible to query a single node or to broadcast a query to multiple nodes combining the results.
* Lucene or Hibernate Search Queries. {brandname} exposes the Hibernate Search DSL, which produces Lucene queries. You can run Lucene queries on single nodes or broadcast queries to multiple nodes in an {brandname} cluster.
* Ickle queries, a custom string-based query language with full-text extensions.

[[query_hibernatesearch]]
===== Hibernate Search
Expand Down Expand Up @@ -1393,8 +1390,9 @@ is a fine example.

[[query_ickle]]
===== Ickle
Create relational and full-text queries in both Library and Remote Client-Server mode with the Ickle query language.

Using Ickle, a light and small subset of JP-QL with full-text extensions, it is possible to create relational and full-text queries in both Library and Remote Client-Server mode. Ickle is a string-based querying language, and has the following characteristics:
Ickle is string-based and has the following characteristics:

* Query Java classes and supports Protocol Buffers.
* Queries can target a single entity type.
Expand All @@ -1418,12 +1416,12 @@ Query q = qf.create("from sample_bank_account.Transaction where amount > 20");

When using Ickle all fields used with full-text operators must be both `Indexed` and `Analysed`.

====== Deviations from the Lucene Query Parser Syntax
====== Ickle Query Language Parser Syntax

While Ickle is a subset of JP-QL it does have the following deviations in its query syntax:
The parser syntax for the Ickle query language has some notable rules:

* Whitespace is not significant.
* There is no support for wildcards in field names.
* Wildcards are not supported in field names.
* A field name or path must always be specified, as there is no default field.
* `&&` and `||` are accepted instead of `AND` or `OR` in both full-text and JPA predicates.
* `!` may be used instead of `NOT`.
Expand Down