我正在使用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()方法,但它并没有真正有很多东西。或者这与我需要翻转的数据库设置有关,而不是查询中出现的内容?
答案 0 :(得分:0)
我认为queryBuilder.term()
对应于基础cts:word-query函数,其文档中包含此注释:
如果既不存在“区分大小写”也不存在“不区分大小写”,则使用$ text来确定区分大小写。如果$ text不包含大写,则指定“不区分大小写”。如果$ text包含大写,则指定“区分大小写”。
看起来您不能将选项传递到term()
,但是传递它的术语可能会影响查询的解释方式。