如何进行术语搜索并忽略案例?

时间:2017-03-24 21:03:49

标签: java marklogic marklogic-8

我正在使用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()方法,但它并没有真正有很多东西。或者这与我需要翻转的数据库设置有关,而不是查询中出现的内容?

1 个答案:

答案 0 :(得分:0)

我认为queryBuilder.term()对应于基础cts:word-query函数,其文档中包含此注释:

  

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

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