我想知道我想要什么是可能的使用搜索语法..例如:让我们假设3个文档
doc 1:
<seq>
<chain><name>PL-1</name></chain>
</seq>
doc 2:
<seq>
<chain><name>PL-1</name></chain>
<chain><name>PL-2</name></chain>
</seq>
doc 3:
<seq>
<chain><name>PL-1</name></chain>
<chain><name>PL-2</name></chain>
<chain><name>PL-3</name></chain>
</seq>我想搜索包含链名称"PL-1“的文档。没别的..。因此,对于这个搜索条件,我只需要获得文档1,如果我想搜索PL-1和PL-2,我应该只得到doc2
有没有可能使用搜索语法?
发布于 2016-10-22 02:20:54
默认的搜索语法使用减号(-)作为转换为否定查询的起始令牌,因此您可以使用它:
xquery version "1.0-ml";
import module namespace search = "http://marklogic.com/appservices/search"
at "/MarkLogic/appservices/search/search.xqy";
search:parse("PL-1 -PL-2 -PL-3")这将返回第一个示例的查询,匹配文档1:
<cts:and-query xmlns:cts="http://marklogic.com/cts">
<cts:word-query>
<cts:text xml:lang="en">PL-1</cts:text>
</cts:word-query>
<cts:not-query>
<cts:word-query>
<cts:text xml:lang="en">PL-2</cts:text>
</cts:word-query>
</cts:not-query>
<cts:not-query>
<cts:word-query>
<cts:text xml:lang="en">PL-3</cts:text>
</cts:word-query>
</cts:not-query>
</cts:and-query>使用相同的方法,您可以为查询创建一个仅与文档2匹配的字符串:
PL-1 PL-2 -PL-3https://stackoverflow.com/questions/40179288
复制相似问题