Marklogic:cts:parse 使用 NEAR 选项运行通配符/不区分大小写的搜索

问题描述 投票:0回答:1

我需要运行以下字符串通配符且不区分大小写的搜索

“过度表达 NEAR/1[有序] 预测*”

我正在使用

cts:parse("overexpression NEAR/1[ordered] predict*")
,生成的查询是:

cts:near-query((
  cts:word-query("overexpression", ("lang=en"), 1), 
  cts:word-query("predict*", ("lang=en"), 1)
), 1, ("ordered"), 1) 

那么如何启用通配符搜索呢?我的意思是要形成的查询应该是:

cts:near-query((
  cts:word-query("overexpression", ("wildcarded","case-insensitive","lang=en"), 1), 
  cts:word-query("predict*", (""wildcarded","case-insensitive","lang=en"), 1)
), 1, ("ordered"), 1) 

我怎样才能实现这个目标?

marklogic marklogic-10
1个回答
0
投票

当未显式设置

wildcarded
unwildcarded
选项时,通配符(
*
?
)的存在与否将决定查询是否为通配符。

类似地,对于

case-sensitive
case-insensitive
- 如果查询值是小写,那么它将是
case-insensitive
。如果是大写或混合大小写,那么它将是
case-sensitive
,除非您显式覆盖并设置大小写选项。

因此,

cts:word-query("predict*", ("lang=en"), 1)
相当于
cts:word-query("predict*", (""wildcarded","case-insensitive","lang=en"), 1)
,为“过度表达”查询指定“通配符”实际上没有意义,因为没有通配符。

© www.soinside.com 2019 - 2024. All rights reserved.