Marklogic:“突出显示”似乎不适用于Node.js和QueryBuilder

时间:2017-09-23 20:50:57

标签: node.js highlight marklogic

我尝试获取文本的摘录,并在JSON集合上突出显示搜索到的单词。 我的搜索语法是:

qb.word(qb.field('doc_text'),vartxt)

'doc_text'声明为字段 (field type: root, include root: false, includes: doc_text),在Node.js应用程序中。

搜索效果很好,在这个领域做得很好...... 但在txt[0].results[kl].matches[0]['match-text']中,我找到了JSON的前3个属性, 而不是'doc_text'中提取的单词的摘录。 我有另一个应用程序,其中的亮点正常工作,但它基于XML。

我是否忘记了字段声明中的内容,或者JSON之间的操作是否有所不同 和XML数据,或者是没有通过Node.js和QueryBuilder在JSON上运行的高亮系统?

亲切的问候

2 个答案:

答案 0 :(得分:0)

字段在XML和JSON中的工作方式不同。我认为你遇到了这个限制:

http://docs.marklogic.com/guide/app-dev/json#id_24090

XML中字段的值可以是所有文本节点的串联,但同样不适用于JSON。

答案 1 :(得分:0)

我想我明白了!

此查询提供了正确的代码段,其摘录和单词突出显示: mkcq.and(mkcq.collection(' document'),mkcq.word(mkcq.field(' doc_text'),' connaitre'))

另一方面,此查询给出了JSON的前3个字段: mkcq.and(mkcq.collection(' document'),mkcq.word(mkcq.field(' doc_text'),' connaitre'),mkcq.value( mkcq.element('',' doc_user'),' mbp'))

我不知道这是否正常,但它应该能够通过简化查询和对返回记录的选择进行纠正,晚上由特定的片段进行纠正。

亲切的问候