/ / Niestandardowe wyniki wyszukiwania w REST MarkLogic - rest, xslt, marklogic

Niestandardowe wyniki wyszukiwania w REST MarkLogic - reszta, xslt, marklogic

Tak nowy MarkLogic utknąłem i nie znalazłem dokumentacji użytkowania. Wiem, co muszę zrobić, po prostu nie wiem, jak to zrobić.

Mam wartość klucza? szukaj na moim serwerze REST, który zwraca standardowe wyniki wyszukiwania ML i fragment kodu XML. Chcę utworzyć własny niestandardowy wynik wyszukiwania, który wyświetli element tytułowy dla moich plików XML.

Wiem, że muszę utworzyć dokument transformacji XSLT i przesłać go na serwer, ale nie wiem, jak kierować na funkcję wyszukiwania ML ani jak to napisać.

Mam podstawową wiedzę na temat XSLT, czy jeśli właśnie utworzyłem coś, co jest ukierunkowane na każdy tytuł pliku przy użyciu xPath, czy to zadziała, czy też ML wymaga użycia niestandardowych funkcji?

Wiem, że jest trochę szeroki, ale mam nadzieję, że ktoś może mnie pokierować.

Odpowiedzi:

2 dla odpowiedzi № 1

Wygląda na to, że mówisz o GET / v1 / keyvalue punkt końcowy MarkLogic REST API. Niestety nie pozwala to wybrać transformacji. Prawdopodobnie możesz użyć GET / v1 / search zamiast tego z parametrem transformacji, używając zapytania strukturalnego do zapytania o wartość elementu. Dokumenty zawierają dobre odwołanie do składni Na tym.

Dokumenty dotyczące tworzenia transformacji i zarządzania nimi można znaleźć tutaj:

http://docs.marklogic.com/guide/rest-dev/transforms#chapter

HTH!


2 dla odpowiedzi nr 2

Możesz użyć extract-metadata w opcjach wyszukiwania za pomocą search:search albo /v1/search/ Punkt końcowy interfejsu API REST w celu włączenia elementu title do elementu metadanych lub właściwości JSON w wynikach:

import module namespace search = "http://marklogic.com/appservices/search"
at "/MarkLogic/appservices/search/search.xqy";

search:search(
"my query string",
<options xmlns="http://marklogic.com/appservices/search">
<extract-metadata>
<qname elem-ns="" elem-name="title"/>
</extract-metadata>
</options>)

Jeśli potrzebujesz większej elastyczności, określ niestandardowa implementacja fragmentu lub funkcja dekoratora wyników w opcjach wyszukiwania.


0 dla odpowiedzi № 3

Czy to klucz-wartość czy pełny tekst? Aby uzyskać klucz-wartość, możesz użyć XPath. Każda ścieżka XPath, która zaczyna się od / lub // lub fn:collection() lub fn:doc() przeszuka całą bazę danych. Możesz także przeszukiwać określone dokumenty lub kolekcje.

Aby uzyskać pełny tekst, którego prawdopodobnie chcesz użyć https://docs.marklogic.com/search:search - lub ewentualnie https://docs.marklogic.com/cts:search dla naprawdę niskiego poziomu kontroli.

Istnieje przykładowy kod używający search:search od XSL w https://github.com/marklogic/RunDMC co może pomóc. Nie korzysta z interfejsu API REST: jest to tradycyjna strona internetowa przesyłająca formularz. Ale view/search.xsl kod może dać ci pojęcie, jak wywołać API wyszukiwania z XSLT.

Ten kod RunDMC może ci również pomóc, jeśli potrzebujesz wywołać XSL z XQuery: spójrz controller/transform.xqy.