Marklogic:“突出显示”似乎不适用于Node.js和QueryBuilder
我尝试使用JSON集合中突出显示的search词来获取文本摘录。 我的search语法是:
qb.word(qb.field('doc_text'),vartxt)
在Node.js应用程序中,将'doc_text'
声明为字段(field type: root, include root: false, includes: doc_text)
。
search工作得很好,在这个领域做得很好……但是在txt[0].results[kl].matches[0]['match-text']
,我find了JSON的前3个属性,而不是从'doc_text'
find的单词的摘录。 我有另一个应用程序,其中的亮点正常工作,但它是基于XML。
我在字段声明中忘记了什么,或者JSON和XML数据之间的操作是不同的,还是不是通过Node.js和QueryBuilder在JSON上运行的高亮系统?
亲切的问候
在XML和JSON中,字段的工作方式不尽相同。 我认为你遇到了这个限制:
http://docs.marklogic.com/guide/app-dev/json#id_24090
XML中字段的值可以是所有文本节点的连接,但JSON中不适用。
我想我明白了!
这个查询提供了一个正确的代码片段,其中包含了摘录和高亮显示的单词:mkcq.and(mkcq.collection('document'),mkcq.word(mkcq.field('doc_text'),'connaitre'))
另一方面,这个查询给出了JSON的前三个字段:mkcq.and(mkcq.collection('document'),mkcq.word(mkcq.field('doc_text'),'connaitre'),mkcq.value (mkcq.element('','doc_user'),'mbp'))
我不知道这是否正常,但它应该能够通过简单的查询和在返回的logging上的select来纠正,晚上由特定snippeter来纠正。
亲切的问候