Что эквивалентно cts: element-query в MarkLogi c Java API - PullRequest
1 голос
/ 18 июня 2020

У меня есть запрос MarkLogi c, написанный на XQuery, и я хотел бы преобразовать его в Java API, используя StructuredQueryBuilder. К сожалению, я не могу найти эквивалент Java для cts:element-query. Не могли бы вы показать мне, как реализовать это в Java?

Запрос, который я хочу преобразовать:

cts:element-query(fn:QName("http://www.example.com/2009/pfi2","content"), cts:word-query("florists", ("case-insensitive","lang=en"), 4.5), ())

1 Ответ

1 голос
/ 18 июня 2020

Метод StructuredQueryBuilder.containerQuery() создает search:container-query в API поиска. На enode REST API преобразует search:container-query в cts:element-query() или cts:json-property-query() или cts:json-property-scope-query() в зависимости от ситуации.

Подробнее см .:

http://docs.marklogic.com/javadoc/client/com/marklogic/client/query/StructuredQueryBuilder.html#containerQuery -com.marklogi c .client.query.StructuredQueryBuilder.ContainerIndex-com.marklogi c .client.query.StructuredQueryDefinition-

http://docs.marklogic.com/guide/search-dev/structured-query#id_87231

Другой способ предоставить запрос в Java API - сериализовать cts:element-query() как JSON или XML для изучения структуры запроса, а затем использовать DOM для создания запроса и передачи запроса как полезная нагрузка RawCtsQueryDefinition.

Для этого подхода см .:

http://docs.marklogic.com/guide/java/searches#id_45762

http://docs.marklogic.com/javadoc/client/com/marklogic/client/query/RawCtsQueryDefinition.html

Надеемся, что помогает,

...