Marklogic 如何以json格式向StructuredQueryDefinition添加选项
我是marklogic新手,希望用json创建marklogic查询 我使用StructuredQueryDefinition创建查询,然后创建RawCombinedQueryDefinitionMarklogic 如何以json格式向StructuredQueryDefinition添加选项,marklogic,marklogic-8,Marklogic,Marklogic 8,我是marklogic新手,希望用json创建marklogic查询 我使用StructuredQueryDefinition创建查询,然后创建RawCombinedQueryDefinition StructuredQueryDefinition queryCriteria = sqb.or(query, sqb.properties(sqb.term(parameters.getQuery)))); String combinedQuery = "<search xmlns=\"htt
StructuredQueryDefinition queryCriteria = sqb.or(query, sqb.properties(sqb.term(parameters.getQuery))));
String combinedQuery = "<search xmlns=\"http://marklogic.com/appservices/search\">" + queryCriteria.serialize() + options + "</search>";
RawCombinedQueryDefinition rawCombinedQuery = queryMgr.newRawCombinedQueryDefinition( new StringHandle(combinedQuery));
StructuredQueryDefinition queryCriteria=sqb.or(query,sqb.properties(sqb.term(parameters.getQuery)));
String combinedQuery=“”+queryCriteria.serialize()+options+”;
RawCombinedQueryDefinition rawCombinedQuery=queryMgr.newRawCombinedQueryDefinition(新StringHandle(combinedQuery));
我可以使用StructuredQueryDefinition在json中创建查询吗?如果可以,如何为json添加选项
谢谢您不能使用StructuredQueryDefinition在json中创建查询。但是,您可以使用流行的XML生成器来构建XML选项,这样就不必管理原始XML。或者,如果您真的喜欢JSON中的选项,可以使用Jackson生成JSON中的结构化查询,然后组合JSON选项 大概是这样的:
ObjectMapper mapper = new ObjectMapper();
ObjectNode combinedQuery = mapper.createObjectNode();
combinedQuery.putObject("search")
.putObject("query")
.putArray("queries")
.addObject()
.putObject("or-query")
.putArray("queries")
.add(mapper.readTree(query))
.addObject()
.putObject("properties-fragment-query")
.putObject("term-query")
.putArray("text")
.add(parameters.getQuery());
combinedQuery.with("search")
.setAll((ObjectNode) mapper.readTree(options));
queryMgr.newRawCombinedQueryDefinition( new JacksonHandle(combinedQuery));
对于后人来说,我相信这个问题与我们有关。也许我对这个问题的回答也会对这个问题有所帮助。感谢您对StructuredQueryDefinition的确认。Marklogic应在将来提供此功能作为增强功能。