Hi
I am looking for any means of querying (OQL/Lucene/API etc..?) this stored
data. Looking for achieving this functionality first and second, in a
performant way.

I shared the OQL like syntax, to share my use-case easily and based on some
reference found on doc. I am ok if a Lucene query or some other way can
fetch the results.

It will be of great help if you share the sample query/code fetching this
data .

Thanks
Ankit.


On Mon, 23 Nov 2020 at 22:43, Xiaojian Zhou <zho...@vmware.com> wrote:

> Anil:
>
> The syntax is OQL. But I understand they want to query JSON object base on
> the criteria.
>
> On 11/23/20, 9:08 AM, "Anilkumar Gingade" <aging...@vmware.com> wrote:
>
>     Gester, Looking at the sample query, I Believe Ankit is asking about
> OQL query not Lucene...
>
>     -Anil.
>
>
>     On 11/23/20, 9:02 AM, "Xiaojian Zhou" <zho...@vmware.com> wrote:
>
>         Ankit:
>
>         Geode provided lucene query on json field. Your query can be
> supported.
>
> https://nam04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgemfire.docs.pivotal.io%2F910%2Fgeode%2Ftools_modules%2Flucene_integration.html&amp;data=04%7C01%7Czhouxh%40vmware.com%7Ca1c897031e4b481a2f1508d88fd270f6%7Cb39138ca3cee4b4aa4d6cd83d9dd62f0%7C0%7C0%7C637417481290223899%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&amp;sdata=pxnkFepPHN61G0wIyfROqIFx5J9aRdyg1GpGHN%2FCU74%3D&amp;reserved=0
>
>         However in above document, it did not provided a query example on
> JSON object.
>
>         I can give you some sample code to query on JSON.
>
>         Regards
>         Xiaojian Zhou
>
>         On 11/22/20, 11:53 AM, "ankit Soni" <ankit.soni.ge...@gmail.com>
> wrote:
>
>             Hello geode-devs, please provide a guidance on this.
>
>             Ankit.
>
>             On Sat, 21 Nov 2020 at 10:23, ankit Soni <
> ankit.soni.ge...@gmail.com> wrote:
>
>             > Hello team,
>             >
>             > I am *evaluating usage of Geode (1.12) with storing JSON
> documents and
>             > querying the same*. I am able to store the json records
> successfully in
>             > geode but seeking guidance on how to query them.
>             > More details on code and sample json is,
>             >
>             >
>             > *Sample client-code*
>             >
>             > import org.apache.geode.cache.client.ClientCache;
>             > import org.apache.geode.cache.client.ClientCacheFactory;
>             > import org.apache.geode.cache.client.ClientRegionShortcut;
>             > import org.apache.geode.pdx.JSONFormatter;
>             > import org.apache.geode.pdx.PdxInstance;
>             >
>             > public class MyTest {
>             >
>             >     *//NOTE: Below is truncated json, single json document
> can max contain an array of col1...col30 (30 diff attributes) within data. *
>             >     public final static  String jsonDoc_2 = "{" +
>             >             "\"data\":[{" +
>             >                         "\"col1\": {" +
>             >                                 "\"k11\": \"aaa\"," +
>             >                                 "\"k12\":true," +
>             >                                 "\"k13\": 1111," +
>             >                                 "\"k14\":
> \"2020-12-31:00:00:00\"" +
>             >                                 "}," +
>             >                         "\"col2\":[{" +
>             >                                 "\"k21\": \"222222\"," +
>             >                                 "\"k22\": true" +
>             >                                 "}]" +
>             >                     "}]" +
>             >             "}";
>             >
>             > *     //NOTE: Col1....col30 are mix of JSONObject ({}) and
> JSONArray ([]) as shown above in jsonDoc_2;*
>             >
>             >     public static void main(String[] args){
>             >
>             >         //create client-cache
>             >         ClientCache cache = new
> ClientCacheFactory().addPoolLocator(LOCATOR_HOST, PORT).create();
>             >         Region<String, PdxInstance> region = cache.<String,
> PdxInstance>createClientRegionFactory(ClientRegionShortcut.CACHING_PROXY)
>             >                 .create(REGION_NAME);
>             >
>             >         //store json document
>             >         region.put("key", JSONFormatter.fromJSON(jsonDoc_2));
>             >
>             >         //How to query json document like,
>             >
>             >         // 1. select col2.k21, col1, col20 from /REGION_NAME
> where data.col2.k21 = '222222' OR data.col2.k21 = '333333'
>             >
>             >         // 2. select col2.k21, col1.k11, col1 from
> /REGION_NAME where data.col1.k11 in ('aaa', 'xxx', 'yyy')
>             >     }
>             > }
>             >
>             > *Server: Region-creation*
>             >
>             > gfsh> create region --name=REGION_NAME --type=PARTITION
> --redundant-copies=1 --total-num-buckets=61
>             >
>             >
>             > *Setup: Distributed cluster of 3 nodes
>             > *
>             >
>             > *My Observations/Problems*
>             > -  Put operation takes excessive time: region.put("key",
>             > JSONFormatter.fromJSON(jsonDoc_2));  - Fetching a single
> record from () a
>             > file and Storing in geode approx. takes . 3 secs
>             >    Is there any suggestions/configuration related to
> JSONFormatter API or
>             > other to optimize this...?
>             >
>             > *Looking forward to guidance on querying this JOSN for above
> sample
>             > queries.*
>             >
>             > *Thanks*
>             > *Ankit*
>             >
>
>
>
>

Reply via email to