marklogic - Marklogic Java 客户端 API 标准不起作用
问题描述
我正在寻找集合中的所有文档,其中包含文档中存在的特定术语。所以,我正在使用以下代码结构:
StringQueryDefinition sqd = queryManager.newStringDefinition();
sqd.setCollections(collectionName);
sqd.setCriteria(searchTerm);
但我总是将结果计数为 0,但如果我删除标准,那么我将获得集合中的所有文档。
这种方法有什么问题,请告诉我。
解决方案
我终于能够找到与命名空间约束相关的标签的答案:
//Create options for search:
String options= "<search:options xmlns:search='http://marklogic.com/appservices/search'>"+
"<search:constraint name='constraintname'>"+
"<search:value>"+
"<search:element name='elementname' ns='your-namespace'/>"+
"</search:value>"+
"</search:constraint>"+
"</search:options>";
//Write options to database
QueryOptionsManager optionsManager = client.newServerConfigManager().newQueryOptionsManager();
StringHandle writeHandle = new StringHandle(options);
optionsManager.writeOptions("OPTION_NAME", writeHandle);
//Create StructuredQueryBuilder with the options
StructuredQueryBuilder queryBuilder = queryManager.newStructuredQueryBuilder("OPTIONS_NAME");
//Create StructuredQueryDefinition using the query builder and specify constraint name and value.
StructuredQueryDefinition queryDefinition = queryBuilder.and(queryBuilder.valueConstraint("constraintname", value));
queryDefinition.setCollections(collectionName);
SearchHandle searchHandle = queryManager.search(queryDefinition, new SearchHandle());
推荐阅读
- bash - 如何以编程方式从 docker-compose.yml 中删除服务?
- java - Python - Java 数学运算给出不同的结果
- ios - 为 PDFAnnotation 设置操作时出现“无法将 'Void' 类型的值分配给类型 'PDFAction?'”错误
- java - URL Fetch 在 Java 8 Google App Engine 中不起作用
- javascript - 是否可以动态添加 ag-grid 本地化?
- c# - C# 协方差混淆
- unit-testing - 嵌套条件语句与复合条件语句的结构有什么区别?
- reactjs - 从主包中隔离特定的配置文件
- java - 如何使用 Selenium 搜索网页中元素的修改?
- gradle - 如何正确使用 shadowJar 中的 minimize()?