如何进行术语搜索并忽略大小写



我正在使用Java API创建搜索,并通过测试注意到我的搜索词中的搜索大小写。我认为一定有一个简单的解决方案,但我还没有在MarkLogic Java API文档中找到它。

我的查询看起来有点像这样:

StructuredQueryBuilder queryBuilder = queryManager.newStructuredQueryBuilder();
StructuredQueryDefinition queryDef = queryBuilder.and(
    queryBuilder.term(term),
    queryBuilder.value(
        queryBuilder.elementAttribute(
            queryBuilder.element(new QName(my-namespace,"document") ),
            queryBuilder.attribute("locale")
        ),
        language)
);

我尝试弄乱 term(( 方法,但它并没有太多内容。或者这是否与我需要翻转的数据库设置有关,而不是查询中的内容?

我相信queryBuilder.term()对应于底层的cts:word-query函数,该函数在其文档中有以下注释:

如果"区分大小写">

或"不区分大小写"都不存在,则$text用于确定区分大小写。如果$text不包含大写,则指定"不区分大小写"。如果$text包含大写,则指定"区分大小写"。

看起来您不能将选项传递到term() 中,但是您传递的术语的大小写可能会影响查询的解释方式。

最新更新