2017-02-13 3 views
0

Wir erstellen eine Unternehmensanwendung mit ML als Back-End-DB. Eine der Anforderungen besteht darin, verschiedene Werte eines bestimmten Elements in XML über verschiedene Dokumente hinweg zu finden.Marklogic- Abrufen unterschiedlicher Werte eines XML-Elements in Dokumenten

Kann ich das deutliche ENTITY_TYPE eine strukturierte Abfrage/kombinierte Abfrage

Alle nachfolgenden Dokumente Teil der Einheit Sammlung sind:

Dokument 1

<xml> 
    <entities> 
     <entity_name>Imprezza</entity_name> 
     <entity_type>Car</entity_type> 
     <entity_color>Red</entity_color> 
    <entities> 
<xml> 

Dokument 2

<xml> 
    <entities> 
     <entity_name>Ducati</entity_name> 
     <entity_type>Bike</entity_type> 
     <entity_color>White</entity_color> 
    <entities> 
<xml> 

Dokument 3

<xml> 
    <entities> 
     <entity_name>Lancia</entity_name> 
     <entity_type>Car</entity_type> 
     <entity_color>Red</entity_color> 
    <entities> 
<xml> 

Dokument 4

<xml> 
    <entities> 
     <entity_name>Scania</entity_name> 
     <entity_type>Truck</entity_type> 
     <entity_color>Black</entity_color> 
    <entities> 
<xml> 

Anforderung: Geben Sie mir alle verschiedene ENTITY_TYPE in der Sammlung

Resultat: Auto, Fahrrad, LKW

P.S: Müssen das Ergebnis in Java-Ebene erhalten. Gegenwärtig verfügen wir über eine API, die kombinierte MarkLogic-Abfragen (Abfrage Strukturierte Abfrage + Optionen) basierend auf Eingaben generiert. Kann ich die verschiedenen Entitäten mithilfe einer strukturierten Abfrage/kombinierten Abfrage abrufen?

Antwort

4

Sie können dies mit einem Lexikon (basierend auf ohne Leerzeichen oben) https://docs.marklogic.com/guide/search-dev/lexicon

ODER

Sie können dies mit einer Reihe Index für jeden der Werte. https://docs.marklogic.com/guide/admin/range_index

In beiden Fällen können Sie die Werte über die Werte REST-Endpunkt abrufen. https://docs.marklogic.com/REST/GET/v1/values/[name]

Ich glaube, dass es Java-API-Lösungen gibt, sobald Sie Ihre Lexika oder Ihren Reichweitenindex ebenfalls installiert haben.

+1

Ja, die Java- und Node.js-Client-APIs weisen beide die gleiche Funktionalität wie GET/v1/values ​​/ {name} auf. In Java ist es QueryManager.values ​​(http://docs.marklogic.com/guide/java/searches#id_65191), und in Node.js ist es databaseClient.values ​​(http://docs.marklogic.com/guide/ Knoten-Entwickler/Suche # ID_56768). – kcoleman

Verwandte Themen