我尝试获取文本的摘录,并在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上运行的高亮系统?
亲切的问候
答案 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'))
我不知道这是否正常,但它应该能够通过简化查询和对返回记录的选择进行纠正,晚上由特定的片段进行纠正。
亲切的问候