Chapter 7. Remote Querying
Chapter 7. Remote Querying Red Hat JBoss Data Grid's Hot Rod protocol allows remote, language neutral querying. Two features allow this to occur: The Infinispan Query Domain-specific Language (DSL) JBoss Data Grid uses its own query language based on an internal DSL. The Infinispan Query DSL provides a simplified way of writing queries, and is agnostic of the underlying query mechanisms. Querying via the Hot Rod client allows remote, language-neutral querying, and is implementable in all languages currently available for the Hot Rod client. The Infinispan Query DSL is essential for performing remote queries, but can be used in both embedded and remote mode. Protobuf Encoding Google's Protocol Buffers is used as an encoding format for both storing and querying data. The Infinispan Query DSL can be used remotely via the Hot Rod client that is configured to use the Protobuf marshaller. Protocol Buffers are used to adopt a common format for storing cache entries and marshalling them. Remote clients that need to index and query their stored entities must use the Protobuf encoding format. It is also possible to store Protobuf entities for the benefit of platform independence without indexing enabled if it is not required. Report a bug 7.1. Querying Comparison In Library mode, both Lucene Query-based and DSL querying is available. In Remote Client-Server mode, only Remote Querying using DSL is available. The following table is a feature comparison between Lucene Query-based querying, Infinispan Query DSL and Remote Querying. Table 7.1. Embedded querying and Remote querying Feature Library Mode/Lucene Query Library Mode/DSL Query Remote Client-Server Mode/DSL Query Indexing Mandatory Optional but highly recommended Optional but highly recommended Index contents Selected fields Selected fields Selected fields Data Storage Format Java objects Java objects Protocol buffers Keyword Queries Yes No No Range Queries Yes Yes Yes Fuzzy Queries Yes No No Wildcard Yes Limited to like queries (Matches a wildcard pattern that follows JPA rules). Limited to like queries (Matches a wildcard pattern that follows JPA rules). Phrase Queries Yes No No Combining Queries AND, OR, NOT, SHOULD AND, OR, NOT AND, OR, NOT Sorting Results Yes Yes Yes Filtering Results Yes, both within the query and as appended operator Within the query Within the query Pagination of Results Yes Yes Yes Continuous Queries No Yes Yes Query Aggregation Operations No Yes Yes Report a bug