我想爲同一個節點中的兩個屬性執行cts:and-query
。 cts:and-query
正在單獨搜索文檔中的測試條件,而不是在同一節點中。Marklogic:cts:和 - 查詢在同一個節點上搜索兩個屬性
有沒有辦法限制搜索應用在同一個節點上?
我想爲同一個節點中的兩個屬性執行cts:and-query
。 cts:and-query
正在單獨搜索文檔中的測試條件,而不是在同一節點中。Marklogic:cts:和 - 查詢在同一個節點上搜索兩個屬性
有沒有辦法限制搜索應用在同一個節點上?
如在第二實施例在此描述的包裹元件查詢內部的和查詢:
http://docs.marklogic.com/cts:element-query?q=cts:element-query
它不必需限制於直接元素本身,也後代被包括在匹配,但取決於你的內容結構,這可能就足夠了。
如果不是,則使用XPath謂詞過濾搜索結果中的誤報。使計數搜索總數等更加困難,但至少可以給出正確的結果。
HTH!
根據您的XML結構,您可以通過使用距離爲零的cts:near-query()
而不是使用cts:and-query()
來完成此操作。我之前寫了一篇文章,談到near-query distance。簡而言之,距離取決於元素內部的單詞,但不受屬性中的單詞的影響。這應該做的伎倆:
cts:near-query(
(cts:element-attribute-value-query($element-qname, $attr1-qname),
cts:element-attribute-value-query($element-qname, $attr2-qname)),
0
)
注意,如果沒有的話element-level
從這些其它元素分離出一張元素的屬性這種方法是行不通的。例如:
<doc>
<stuff a="1" b="2">some text</stuff>
<stuff a="3" b="4">some other text</stuff>
</doc>
東西元件的內部的文本提供/doc/stuff\[1\]
的屬性和/doc/stuff\[2\]
的屬性之間有一定距離。 a和b屬性之間沒有距離。如果stuff元素沒有文本,則/doc/stuff\[1\]
的屬性和/doc/stuff\[2\]
的屬性之間沒有距離。