我正在尝试通过在搜索选项文件中为cts:element-value-query
添加权重来获得更多相关结果
我的用例是,给我所有符合搜索条件的文档,并在文档包含taxonomy-id = 9606
的情况下提高它们。
以下是我的选择
<options xmlns="http://marklogic.com/appservices/search">
<additional-query>
<cts:and-query xmlns:cts="http://marklogic.com/cts">
<cts:collection-query>
<cts:uri>http://rdf.abbvienet.com/entity/target</cts:uri>
</cts:collection-query>
<cts:or-query>
<cts:element-value-query weight="64">
<cts:element xmlns:target-species="http://schemas.abbvienet.com/entity/target/species">target-species:taxonomy-id</cts:element>
<cts:text xml:lang="en">9606</cts:text>
</cts:element-value-query>
<cts:not-query>
<cts:element-value-query weight="-16">
<cts:element xmlns:target-species="http://schemas.abbvienet.com/entity/target/species">target-species:taxonomy-id</cts:element>
<cts:text xml:lang="en">9606</cts:text>
</cts:element-value-query>
</cts:not-query>
</cts:or-query>
</cts:and-query>
</additional-query>
<constraint name="gs">
<word>
<element ns="http://schemas.abbvienet.com/entity/target" name="gene-symbol"/>
<weight>25.0</weight>
</word>
</constraint>
<constraint name="gas">
<word>
<element ns="http://schemas.abbvienet.com/entity/target" name="gene-alternate-symbols"/>
<weight>20.0</weight>
</word>
</constraint>
<constraint name="eid">
<word>
<element ns="http://schemas.abbvienet.com/entity/target" name="entrezgene-id"/>
<weight>64.0</weight>
</word>
</constraint>
<constraint name="gn">
<word>
<element ns="http://schemas.abbvienet.com/entity/target" name="gene-name"/>
<weight>2.0</weight>
</word>
</constraint>
<constraint name="pn">
<word>
<element ns="http://schemas.abbvienet.com/entity/target/protein" name="protein:name"/>
</word>
</constraint>
<term>
<term-option>case-insensitive</term-option>
<term-option>punctuation-insensitive</term-option>
<term-option>whitespace-insensitive</term-option>
<term-option>wildcarded</term-option>
</term>
当我进行以下搜索
let $q := '((gs:BTK) OR (gas:BTK) OR (eid:BTK) OR (gn:BTK) OR (pn:BTK))'
return
search:search($q, $options)
由于某些原因,taxonomy-id=9606
的结果未显示在顶部……如果这不是正确的方法,我应该怎么做?