Xiaojian Zhou created GEODE-9013:
------------------------------------
Summary: geode example for lucene should add use case for nest
object
Key: GEODE-9013
URL: https://issues.apache.org/jira/browse/GEODE-9013
Project: Geode
Issue Type: Bug
Reporter: Xiaojian Zhou
We need to add example to guide users to use gfsh to insert nest object with
array, then query on the array's item.
Here are the use case:
define following user object classes:
package examples;
import java.io.Serializable;
public class ExampleRegion implements Serializable {
private ExampleIdentifier exampleIdentifier;
public ExampleRegion() {}
public ExampleRegion(ExampleIdentifier exampleIdentifier) {
this.exampleIdentifier = exampleIdentifier;
}
public void setExampleIdentifier(ExampleIdentifier exampleIdentifier) {
this.exampleIdentifier = exampleIdentifier;
}
public ExampleIdentifier getExampleIdentifier() {
return this.exampleIdentifier;
}
}
package examples;
import java.io.Serializable;
public class ExampleIdentifier implements Serializable {
private String exampleId;
private SystemId[] systemIds;
public ExampleIdentifier() {}
public ExampleIdentifier(String exampleId, SystemId[] systemIds) {
this.exampleId = exampleId;
this.systemIds = systemIds;
}
public void setExampleId(String exampleId) {
this.exampleId = exampleId;
}
public void setSystemIds(SystemId[] systemIds) {
this.systemIds = systemIds;
}
public String getExampleId() {
return this.exampleId;
}
public SystemId[] getSystemIds() {
return this.systemIds;
}
}
package examples;
import java.io.Serializable;
public class SystemId implements Serializable {
private String id;
private String system;
public SystemId() {}
SystemId(String id, String system) {
this.id = id;
this.system = system;
}
public void setId(String id) {
this.id = id;
}
public void setSystem(String system) {
this.system = system;
}
public String getId() {
return this.id;
}
public String getSystem() {
return this.system;
}
}
Then use gfsh to do insert and query:
gfsh>deploy
--jar=/Users/gzhou/git3/lucene_example/build/libs/lucene_example-0.0.1.jar
gfsh>create lucene index --name=arrayIndex --region=/exampleRegion
--field=exampleIdentifier.systemIds.system --analyzer=DEFAULT
--serializer=org.apache.geode.cache.lucene.FlatFormatSerializer
gfsh>create region --name=exampleRegion --type=PARTITION
gfsh>put --region=/exampleRegion --key="('id':'1')"
--value="('exampleIdentifier': {'exampleId': '000000000','systemIds':[{'id':
'ID','system': 'MUREX'}]})" --value-class="examples.ExampleRegion"
gfsh>put --region=/exampleRegion --key="('id':'1')"
--value="('exampleIdentifier': {'exampleId': '000000000','systemIds':[{'id':
'Id','system': 'MUREX'}]})" --value-class="examples.ExampleRegion"
gfsh>put --region=/exampleRegion --key="('id':'2')"
--value="('exampleIdentifier': {'exampleId': '000000001','systemIds':[{'id':
'ID','system': 'MUREX'}, {'id': 'ID1','system': 'WHITEBOX'}]})"
--value-class="examples.ExampleRegion"
gfsh>search lucene --name=arrayIndex --region=/exampleRegion
--queryString="exampleIdentifier.systemIds.system:MUREX"
--defaultField="exampleIdentifier.systemIds.system"
key | value | score
---------- | ------------------------------- | ----------
{'id':'1'} | examples.ExampleRegion@105ea825 | 0.2876821
{'id':'2'} | examples.ExampleRegion@4a0c4c91 | 0.25811607
--
This message was sent by Atlassian Jira
(v8.3.4#803005)