2016-06-14 136 views
0

我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次)?

回答

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" /> 
在你的選擇

+0

感謝隊友,我使用的方法的鏈接的「讀多個文檔匹配查詢」,其中我得到的文檔通過DocumentPage和DocumentRecord.getAsContent(類)中的內容。 –