I have a document in cloudant server as:
{
"_id": "web",
"_rev": "11-b1d0e315272a87c2549df4004d836049",
"min_weight": 40,
"max_weight": 65,
"min_length": 1,
"max_length": 2.2,
"attributeCollection": {
"attributeArray": [
{
"updateable": false,
"lookup": "issuetype",
"issueAttributeDefinitionId": 13,
"attributeType": 1,
"name": "web issue",
"value": [
"Improper Neutralization of Input During Web Page Generation"
]
}
]
},
}
I created search index for "name" and "value" in documents as:
function (doc) {
if (doc.attributeCollection && doc.attributeCollection.attributeArray) {
for (var i=0; i<doc.attributeCollection.attributeArray.length; i++) {
if (doc.attributeCollection.attributeArray[i].name) {
index("name", doc.attributeCollection.attributeArray[i].name, { store : true });
}
if (doc.attributeCollection.attributeArray[i].value) {
for (var j=0; j<doc.attributeCollection.attributeArray[i].value.length; j++) {
index("value", doc.attributeCollection.attributeArray[i].value[j], { store : true });
}
}
}
}
}
and I have successfully performanced the query (https://xxx.cloudant.com/issuedb/_design/searchJson/_search/newSearch?limite=10&include_docs=true&q=name:"web*"
)in browser to get the result. Moreover, I want to get the results by cloudant-client api. The below is my code
CloudantClient client=new CloudantClient("xxx", "xxx", "xxx" );
System.out.println("Connection successful! "+client.getBaseUri());
Database db=client.database("issuedb", true);
System.out.println("Datase available - "+db.getDBUri());
List<issue> issues=db.search("searchJson/newSearch")
.limit(10).includeDocs(true)
.query("name=\"web*\"", issue.class);
for (int i = 0; i < issues.size(); i++) {
issue iss=issues.get(i);
System.out.println(iss.getId());
System.out.println(iss.getName());
System.out.println(iss.getValue());
}
But it can not get the result as search query in browser (Data and index connection are also checked, it is fine). What is the mistake in this code.
Search indexes are queried using Lucene Query Parser Syntax. try using a colon instead of the equal sign:
More Info:
Cloudant Search
Lucene Query Parser Syntax