根据搜索语法构建cts查询

如何解决根据搜索语法构建cts查询

我有一个用例,其中我必须编写自定义 REST 扩展,并且必须根据用户提供的文本字符串构建 cts:query。有没有一种方法可以利用

  • cts:query 传递给 search:search ?
  • 或者我如何利用搜索语法的力量,如 search:search 构建 cts:query 的方式?

自定义搜索约束在我的情况下不起作用。

------------ 更新,提供更多上下文---------------

我的数据库中有两种不同的实体类型。当用户查询时,我得到了两种实体类型的结果,并将结果组合在一起。每种实体类型的属性都有不同的加权方案。
所以我最终编写了一个自定义 REST 扩展,其中我为每个实体类型构建了 cts:query,然后发出多个 cts:search,然后组合结果.. 这有效,但当用户使用搜索语法发送时失败。
作为解决方法(也许不是)。我有一个 API 网关,当用户发出调用时,在 API 网关中,我使用开箱即用的搜索 REST API 发出多个调用,每个实体类型都有搜索选项和然后在 GATEWAY 中,我将它们组合起来..
现在我必须在 marklogic 中维护逻辑,在 gateway 中维护一个逻辑......这很好......我想看看我是否可以在 Marklogic 中拥有一切

解决方法

考虑一下 cts:parse(),它是 search:parse() 的现代、更快、更灵活和更健壮的替代方案,用于在 XQuery 和 SJS 中生成 cts:query:

https://docs.marklogic.com/cts:parse

如果您需要在客户端构建查询结构,一种可能性是在客户端使用 XML 或 JSON DOM API 构建 cts:query 的序列化,并使用 cts:query() 构造函数来解析序列化cts:在enode上查询。

您可以使用以下命令查看 cts:query 的 XML 序列化:

xdmp:quote(document{...YOUR QUERY...}/*)

和 JSON 序列化:

xdmp:to-json-string(...YOUR QUERY...)

希望有所帮助,

,

接收和处理 qtext 相当简单:只需使用 search:parse。它返回一个 cts:query,它可以与其他 cts 查询合并,并传递到 search:resolve、光学查询(您将 cts 查询作为参数提供给 op:where)或 {{ 1}} 老式的方式。

处理结构化查询更加困难。不幸的是,没有公开的官方 API 可以将其转换为 cts 查询..

HTH!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?