提高搜索得分:搜索其他查询

时间:2019-11-07 17:27:45

标签: marklogic marklogic-9

我正在尝试通过在搜索选项文件中为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的结果未显示在顶部……如果这不是正确的方法,我应该怎么做?

0 个答案:

没有答案