MarkLogic JSearch中是否可以使用持久性搜索选项?

MarkLogic JSearch中是否可以使用持久性搜索选项?,marklogic,Marklogic,是否可以在JSearch中使用预定义的持久搜索选项,类似于SearchRESTAPI?翻阅文档,我没能找到它 J研究: 查询选项: 谢谢大家! 不直接。您必须遍历这些选项,并使用facet和您自己构建搜索。但这并不难。下面是一个快速的尝试。我通过GET/v1/config/query/all?format=json下载了现有的搜索选项,并隔离了一些路径索引方面。下面是一些遍历它们并生成方面值的代码: 'use strict'; const jsearch = require('/MarkLog

是否可以在JSearch中使用预定义的持久搜索选项,类似于SearchRESTAPI?翻阅文档,我没能找到它

J研究:

查询选项:


谢谢大家!

不直接。您必须遍历这些选项,并使用facet和您自己构建搜索。但这并不难。下面是一个快速的尝试。我通过
GET/v1/config/query/all?format=json
下载了现有的搜索选项,并隔离了一些路径索引方面。下面是一些遍历它们并生成方面值的代码:

'use strict';

const jsearch = require('/MarkLogic/jsearch.sjs');

function reference(c) {
  if (c.range) {
    if (c.range['path-index']) {
      return cts.pathReference(c.range['path-index'].text)
    }
  }
}

const options = {
    "options": {
        "constraint": [{
            "name": "Auteur",
            "range": {
                "type": "xs:string",
                "facet": true,
                "collation": "http://marklogic.com/collation/codepoint",
                "facet-option": ["limit=10", "frequency-order", "descending"],
                "path-index": {
                    "text": "*:meta[@name = 'Author']/@content"
                }
            }
        }, {
            "name": "ContentType",
            "range": {
                "type": "xs:string",
                "facet": true,
                "collation": "http://marklogic.com/collation/codepoint",
                "facet-option": ["limit=10", "frequency-order", "descending"],
                "path-index": {
                    "text": "*:meta[@name = 'content-type']/@content"
                }
            }
        }]
    }
};

const facets = options.options.constraint.filter(c => c.range);

jsearch.facets(
  facets.map(f => {
    let ref = reference(f);
    if (ref) {
      return jsearch.facet(f.name, ref);
    }
  }).filter(f => f)
).result('iterator');

谢谢,@grtjn。我觉得如果JSearch可以有一个内置的方法来直接使用搜索选项,以便更好地与MarkLogic中的其他搜索实用程序进行互操作,那就太好了。还是我将JSearch误用在了它不是为之设计的东西上?旧的search:search库附带了XML搜索选项,并且非常关注XQuery代码/定制,这对于JavaScript来说是不自然的。这就是创建JSearch的原因,它只对JavaScript可用。尤其是定制挂钩使得为两个世界提供一个标准变得困难。感谢您的解释。