J'essaie d'obtenir un extrait du texte avec les mots recherchés mis en évidence sur une collection JSON. Ma syntaxe de recherche est:Marklogic: "highlight" ne semble pas fonctionner avec Node.js et QueryBuilder
qb.word(qb.field('doc_text'),vartxt)
Avec 'doc_text'
a déclaré que le champ (field type: root, include root: false, includes: doc_text)
, dans une application Node.js.
La recherche fonctionne bien, et il est bien fait dans ce domaine ... Mais txt[0].results[kl].matches[0]['match-text']
, je trouve les 3 premières propriétés du JSON, et non pas un extrait de 'doc_text'
avec les mots trouvés. J'ai une autre application dans laquelle les faits saillants fonctionnent correctement, mais elle est basée sur XML. Ai-je oublié quelque chose dans la déclaration de champ ou l'opération est-elle différente entre les données JSON et les données XML, ou le système de surbrillance n'est-il pas exécuté sur JSON via Node.js et QueryBuilder?
Amitiés
J'avais déjà lu cette page. Je ne pense pas que cette limitation soit la cause du problème. Le champ est un champ simple, le contenu global d'un "pdftotext", sans sous-champ ou concaténation. Et la recherche fonctionne correctement .... – mbport
La requête sur le XML est-elle aussi une requête sur le terrain? Snippeting (qui génère le texte correspondant pour JSON et XML) utilise la fonction cts.walk() du serveur, qui peut ne pas correspondre aux champs. – ehennum
Oui, c'est exactement la même requête, basée sur node.js et querybuilder. – mbport