Marklogic 路径范围查询中不区分大小写的搜索
Case insensitive search in Path Range Query for Marklogic
我们如何对路径范围查询进行不区分大小写的搜索?
我想对路径进行不区分大小写的搜索:
/pathSyntax = (case insensitive value of $Type)
路径范围搜索的示例查询格式,我需要使此路径范围查询搜索不区分大小写:,我是否需要更改也为其创建的索引?
let $xyz:= cts:and-query((
cts:collection-query(concat("xyz://", val, "/test")),
cts:path-range-query("/pathSyntax", "=",$Type)
))
以下是范围路径索引:
{
"scalar-type": "string",
"path-expression": "/pathSyntax",
"collation": "http://marklogic.com/collation/",
"range-value-positions": false,
"invalid-values": "reject"
},
您可以使用不区分大小写的排序规则为您的路径编制索引。
例如,
http://marklogic.com/collation/en/S1
是一种 case/diacritic 不敏感的英文字符编码,或者 http://marklogic.com/collation/en/S2
是变音符号敏感的并且可能表现更好。
{
"scalar-type": "string",
"path-expression": "/pathSyntax",
"collation": "http://marklogic.com/collation/en/S1",
"range-value-positions": false,
"invalid-values": "reject"
}
根据查询的默认排序规则,您可能还需要在 cts:path-range-query
:
中将排序规则指定为一个选项
cts:path-range-query("/pathSyntax", "=", $Type, "collation=http://marklogic.com/collation/en/S1")
我们如何对路径范围查询进行不区分大小写的搜索? 我想对路径进行不区分大小写的搜索:
/pathSyntax = (case insensitive value of $Type)
路径范围搜索的示例查询格式,我需要使此路径范围查询搜索不区分大小写:,我是否需要更改也为其创建的索引?
let $xyz:= cts:and-query((
cts:collection-query(concat("xyz://", val, "/test")),
cts:path-range-query("/pathSyntax", "=",$Type)
))
以下是范围路径索引:
{
"scalar-type": "string",
"path-expression": "/pathSyntax",
"collation": "http://marklogic.com/collation/",
"range-value-positions": false,
"invalid-values": "reject"
},
您可以使用不区分大小写的排序规则为您的路径编制索引。
例如,
http://marklogic.com/collation/en/S1
是一种 case/diacritic 不敏感的英文字符编码,或者 http://marklogic.com/collation/en/S2
是变音符号敏感的并且可能表现更好。
{
"scalar-type": "string",
"path-expression": "/pathSyntax",
"collation": "http://marklogic.com/collation/en/S1",
"range-value-positions": false,
"invalid-values": "reject"
}
根据查询的默认排序规则,您可能还需要在 cts:path-range-query
:
cts:path-range-query("/pathSyntax", "=", $Type, "collation=http://marklogic.com/collation/en/S1")