MarkLogic搜索和检索特定领域

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" /> 
在你的选择

+0

感谢队友,我使用的方法的链接的“读多个文档匹配查询”,其中我得到的文档通过DocumentPage和DocumentRecord.getAsContent(类)中的内容。 –