Skip to content

Find all documents

Find all documents matching supplied query.

Tip: Include a sort condition in the elastic search query to ensure consistent results.

Import Libraries
import java.util.Iterator;
import java.util.List;

import org.apache.log4j.Logger;

import com.fieldtec.webclient.config.WebclientConfig;
import com.fieldtec.webclient.model.Document;
import com.fieldtec.webclient.service.FieldtecService;
import com.fieldtec.webclient.service.impl.FieldtecServiceImpl;
import com.fieldtec.webclient.util.UtilJson;
Setup the ftService
// Setup webclientConfig
WebclientConfig webclientConfig = WebclientConfig.getInstance();
webclientConfig.setAuthUrl(context.authUrl);
webclientConfig.setUsername(context.username);
webclientConfig.setPassword(context.password);
webclientConfig.setWebserviceUrl(context.webserviceUrl);

// Initialise ftService after setup of webclientConfig
FieldtecService ftService = new FieldtecServiceImpl();
Find a Formbird document
static final String KEY_SYSTEMHEADER_TEMPLATE_ID = "systemHeader.templateId";
static final String KEY_SYSTEMHEADER_SYSTEM_TYPE = "systemHeader.systemType";
static final String SYSTEM_TYPE_DOCUMENT = "document";
static final String TEMPLATE_ID_ASSET = "5ba9bbee5b116026f1b23dad";

String findKey = "assetCategory";
String findValue = "waterMain";
String sortKey = "assetId";

String findQuery = "{\"query\":{\"bool\":{\"must\":["
    + " {\"term\":{\"" + uniqueKey + "\":\"" + uniqueValue + "\"}}"
    + ",{\"term\":{\"" + KEY_SYSTEMHEADER_TEMPLATE_ID + "\":\"" + TEMPLATE_ID_ASSET + "\"}}"
    + ",{\"term\":{\"" + KEY_SYSTEMHEADER_SYSTEM_TYPE + "\":\"" + SYSTEM_TYPE_DOCUMENT + "\"}}"
    + "]}},"
    + "\"sort\":["
    + "{\"" + sortKey + "\":{\"order\":\"asc\"}}"
    + "]}";

// Find documents
List<Document> results = ftService.findAll(findQuery);

// Process results
if (results != null) {
    int size = results.size();
    logger.info(method + " size: " + size);

    Iterator<Document> iterator = results.iterator();
    while(iterator.hasNext()) {
        Object object = iterator.next();
        if (object instanceof Document) {
            logger.info(UtilJson.prettyPrint(object));
        }
    }
} else {
    logger.info(method + "results is null");
}

// Close ftService
ftService.close();