在元素/属性名称/ Json属性上自动提示

时间:2016-02-09 17:23:33

标签: marklogic marklogic-8

我对元素名称和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

我们可以在marklogic中获取像docID这样的元素/ json属性名称的自动提示吗?如果是的话,怎么做可以通过java-client-api。

1 个答案:

答案 0 :(得分:4)

如您所知,markLogic&#34;建议&#34;基于单词词典或值词典(范围索引)。我不知道可以捕获元素或属性名称的单词lexicon或value lexicon。我认为你最好的选择是修改你的文件,使其包含一个元素或属性,其中包含你想要索引/建议的值。

这样的事情:

<?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>