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

Java 如何进行术语搜索并忽略大小写?,java,marklogic,marklogic-8,Java,Marklogic,Marklogic 8,我正在使用JavaAPI创建搜索,并通过测试注意到我的搜索在搜索词的大小写上有所不同。我想一定有一个简单的解决方案,但我还没有在MarkLogicJavaAPI文档中找到它 我的查询看起来有点像这样: StructuredQueryBuilder queryBuilder = queryManager.newStructuredQueryBuilder(); StructuredQueryDefinition queryDef = queryBuilder.and( queryBuild

我正在使用JavaAPI创建搜索,并通过测试注意到我的搜索在搜索词的大小写上有所不同。我想一定有一个简单的解决方案,但我还没有在MarkLogicJavaAPI文档中找到它

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

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()方法,但实际上没有太多。或者这与我需要翻转的DB设置有关,而不是与查询中的某些内容有关?

我认为
queryBuilder.term()
对应于底层函数,其文档中有以下注释:

如果不存在“区分大小写”或“不区分大小写”,则使用$text来确定区分大小写。如果$text不包含大写字母,则指定“不区分大小写”。如果$text包含大写,则它指定“区分大小写”


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

好的,很酷。因此,我认为在传递搜索词之前,将其转换为较低的关注度可以实现我想要的结果。谢谢请注意,您可以在服务器上安装命名搜索选项(包括术语选项),并在调用newStructuredQueryBuilder(选项名称)时引用它