我正在使用MarkLogic Java API。我正在寻找一种方法来设置一个StringQueryDefinition的查询类型。该类型应为“值”,如https://docs.marklogic.com/guide/search-dev/searchdev#id_34905中所述。MarkLogic Java:将查询类型设置为StringQueryDefinition中的值
值:匹配特定JSON属性或XML元素中的整个文字值,例如字符串或数字。默认情况下,值查询使用完全匹配语义。例如,搜索“标记”不符合“马克吐温”。
我需要这个,因为我希望我的文本搜索仅匹配确切的搜索项。
示例:搜索'标记'只能与包含与某个键相关的术语'标记'的文档匹配。所以,{"anExample1": {"key1": "mark", "key2":"someotheralue"}}
是有效的匹配项。但{"anExample2": {"key1": "mark twain", "key2":"someotheralue"}}
不是有效匹配项。
对于这两个示例,我想获取返回的文档中的URI和位置。因此,搜索"mark"
应返回uri/anExample1
和anExample1/key1
。
你试过什么吗?我不清楚在什么情况下你可以搜索“一二三”,并让它匹配你的第二个示例文档。 –
你说得对。我的例子很糟糕,对不起。编辑。 – sjoerd999
请确保也看看StructuredQueryBuilder和SearchHandle。这些可能会成为你答案的一部分。您是否阅读过Java搜索指南? http://docs.marklogic.com/guide/java/searches –