Marklogic search:使用jsearch仅输出匹配元素和文档的uri
我不熟悉MarkLogic。我正在寻找一种方法,在使用jsearch时只从文档中输出匹配的元素,但是在执行查询时,不知道要与搜索词匹配的元素。让我举例说明:Marklogic search:使用jsearch仅输出匹配元素和文档的uri,marklogic,Marklogic,我不熟悉MarkLogic。我正在寻找一种方法,在使用jsearch时只从文档中输出匹配的元素,但是在执行查询时,不知道要与搜索词匹配的元素。让我举例说明: jsearch.documents() .where(cts.wordQuery('mark')) .result(); 这给了我所有包含“标记”的文档,例如 { "results": [ { "index": 0, "uri": "/books/twain4.json", "score": 1
jsearch.documents()
.where(cts.wordQuery('mark'))
.result();
这给了我所有包含“标记”的文档,例如
{
"results": [
{
"index": 0,
"uri": "/books/twain4.json",
"score": 14336,
"confidence": 0.432453483343124,
"fitness": 0.7490314245224,
"document": {
"title": "Adventures of Huckleberry Finn",
"author": "Mark Twain",
"edition": {
"format": "hardback",
"price": 18
}
,
"synopsis": "The adventures of Huck, a boy of 13, and Jim, an escaped slave, rafting down the Mississippi River in pre-Civil War America."
}
}
, ...
但是,我想知道如何调整查询,以便在找到匹配项的每个文档中只提供匹配元素:
{
"results": [
{
"index": 0,
"uri": "/books/twain4.json",
"score": 14336,
"confidence": 0.432453483343124,
"fitness": 0.7490314245224,
"document": {
"author": "Mark Twain",
}
}
, ...
这里只有author元素具有匹配项,但在执行查询时不知道该元素。我只想显示上面提到的作者的匹配值。
提前谢谢 这里有几个选项 如果只想对一个JSON属性使用jSearch运行搜索,可以运行以下操作:
const jsearch = require('/MarkLogic/jsearch');
const term = 'mark';
const query = cts.jsonPropertyWordQuery('author', term);
jsearch.documentSelect(cts.search(query), { snippet: { query: query } });
如果您想控制jSearch返回内容的方式,可以应用:
您还可以将这两者结合起来:
const jsearch = require('/MarkLogic/jsearch');
const term = 'mark';
const query = cts.jsonPropertyWordQuery('author', term);
jsearch.documentSelect(cts.search(query), { snippet: { query: query }, extract: { paths: ['/author'] } });
有关更多信息,您可以阅读以下文档:
(还有一个注意事项:您可能还希望通过示例运行查询—在示例中构建原型文档并基于此执行搜索。此处的更多信息:关于Tamas的好建议的一个脚注:map()后处理器可以提供{snippet:…}规范,从而无需单独的documentSelect()请看:如果我事先不知道我的单词“mark”的匹配将出现在某个文档中的元素“author”上,该怎么办。
const jsearch = require('/MarkLogic/jsearch');
const term = 'mark';
const query = cts.jsonPropertyWordQuery('author', term);
jsearch.documentSelect(cts.search(query), { snippet: { query: query }, extract: { paths: ['/author'] } });