我是MarkLogic(和noSQL)的新手,目前正在尝试学习Java API客户端。关于搜索的问题,返回搜索结果片段/匹配,搜索结果是否可以在文档中包含特定字段?
例如,鉴于此文件:
{"id":"1", "type":"classified", "description": "This is a classified type."}
我用这个搜索:
QueryManager queryMgr = client.newQueryManager();
StringQueryDefinition query = queryMgr.newStringDefinition();
query.setCriteria("classified");
queryMgr.search(query, resultsHandle);
如何将JSON文档的3个定义字段(id,类型,描述)作为搜索结果的一部分 - 所以我可以在我的UI表中显示它们?
我是否需要通过URI加载文档再次点击数据库(因此,如果我有1000条记录,这意味着再次点击数据库1000次)?
答案 0 :(得分:3)
您可以使用多种方法检索搜索结果中的特定字段。您可以使用Pojo Data Binding Interface。您可以read multiple documents matching a query带回每个文档的全部内容,然后您可以将其作为pojo或String或任何其他句柄获取。或者您可以使用上面使用的相同API,但添加搜索选项以允许您extract a portion of a matching document。
如果您带回了数千场比赛,那么您可能无法向最终用户展示所有这些片段,因此您应该disable snippets使用类似
的内容<transform-results apply="empty-snippet" />
在您的选项中。