Автоматическое предложение имени элемента/атрибута/свойства Json

У меня есть уникальное требование автоматически предлагать имена элементов и имена свойств json.

Пример XML:

<?xml  version="1.0" encoding="UTF-8"?>
<ns2:Envelope ns1:version="1.2" xmlns:ns2="http://www.w3.org/2003/05/soap-envelope" xmlns:ns3 = "http://test.com/2016/doc">
<ns2:Body>
    <ns3:docID>D253456</ns3:docID>
<ns2:Body>

Мне удалось получить предложения по значениям через java-client-api с параметрами. Индекс диапазона в фоновом режиме.

String[] results = queryMgr.suggest(sd);

или я могу использовать что-то через xquery

declare namespace ns3 = "http://test.com/2016/doc";
cts:element-value-match(xs:QName("ns3:docID"),fn:concat("D25","*"))[1 to 10];

Но не удалось найти способ предложить имя элемента, например, doc* return docId

Можем ли мы получить автоподсказку для имен свойств элемента/json, таких как docID, в marklogic? если да, то как это сделать через java-client-api.


person user5848621    schedule 09.02.2016    source источник


Ответы (1)


Как вы знаете, «предложение» markLogic основано на лексиконе слов или словарях значений (индексах диапазона). Мне неизвестен словарь слов или словарь значений, который может фиксировать имена элементов или свойств. Я думаю, что вам лучше всего изменить свои документы, чтобы они содержали элемент или свойство, содержащее значение, которое вы хотите проиндексировать/предложить.

Что-то вроде этого:

<?xml  version="1.0" encoding="UTF-8"?>
<ns2:Envelope ns1:version="1.2" xmlns:ns2="http://www.w3.org/2003/05/soap-envelope" xmlns:ns3 = "http://test.com/2016/doc">
<ns2:Body>
    <ns3:docID>D253456</ns3:docID>
    <ns3:elementName>docId</ns3:elementName>
    <ns3:elementName>elementName</ns3:elementName>
<ns2:Body>
person Sam Mefford    schedule 10.02.2016
comment
Еще раз спасибо за ответ и разъяснения. Я планирую добавить еще один xml с определениями элементов и предложить использовать его. - person user5848621; 12.02.2016