在marklogic中搜索特殊字符

时间:2015-12-07 10:27:41

标签: unicode special-characters marklogic

我无法在marklogic中搜索包含特殊字符(?*)和数学符号(÷)等的内容 如果我使用÷搜索内容,则无法获得任何结果。

localhost:9000/v1/search?q=divide÷&collection=Math&options=searchmath&format=xml

内容:divide÷

我在元素中使用索引搜索,看起来像marklogic没有索​​引÷符号。

为什么marklogic没有返回具有特殊字符元素的正确响应的任何想法?

1 个答案:

答案 0 :(得分:6)

÷字符被索引为标点符号,也就是说,它根本没有编入索引。如果查看tokenizer.xml,您可以看到各种字符范围内的字符分类,以便进行标记化。如果需要将此字符编入索引,则可以在字段上定义tokenizer override

但是,在这种情况下,我会期望错误的肯定而不是假否定。获取查询计划并确保字符正确地通过URL编码和REST等层进行查找可能很有用。

至于?* - 这些是通配符,因此您必须确保您的查询是未受过保护的。同样,在非通配符查询中,这些是标点符号,而不是索引 - 您只能通过过滤搜索或精确值查询来获得准确的搜索。