Marklogic 搜索文法 NEAR 逻辑

Marklogic search Grammar NEAR Logic

我正在使用 ML 搜索语法 abc NEAR xyz。问题是 NEAR 向两个方向看。是否可以告诉 ML 只向一个方向看。

很遗憾,没有。搜索 API 语法 NEAR/ 被解析为 cts:near-query,它没有方向选项:https://docs.marklogic.com/cts:near-query.

更新: 这在任何地方都没有记录,但可能值得一试。搜索 API 实现似乎支持使用 space 分隔选项属性从语法定义中解析选项。尽管 default options 中提供了 none,但您可以通过在搜索选项中定义自己的语法来覆盖它。

类似这样的方法可能有效:

<search:grammar>
  <search:joiner strength="30" apply="infix" options="ordered"
     element="cts:near-query" tokenize="word">NEAR</search:joiner>
</search:grammar>

cts:parse文法可以取有序选项, cts:parse("abc NEAR/2[ordered] xyz")