MarkLogic搜索和检索特定领域
问题描述:
我faily新MarkLogic(和NoSQL),目前正在努力学习Java API的客户端。我对搜索的问题,其中返回搜索结果片断/匹配,是否有可能搜索结果中包括特定字段在文档中?MarkLogic搜索和检索特定领域
例如,假设此文档:
{"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的文件再次命中DB(因此,如果我有1000条记录,这意味着击中DB再次1000次)?
答
您有几种选择来检索与搜索结果的特定字段。你可以使用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" />
在你的选择
。
感谢队友,我使用的方法的链接的“读多个文档匹配查询”,其中我得到的文档通过DocumentPage和DocumentRecord.getAsContent(类)中的内容。 –