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%7Cagingade%40vmware.com%7Cd513ee6b680c483830df08d88fd194f5%7Cb39138ca3cee4b4aa4d6cd83d9dd62f0%7C0%7C0%7C637417477593275133%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&amp;sdata=l4RfUYfWLRnun%2BOYKtIE0pjkC047LsWBBNMdQb3MY2M%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