关于方面的问题

时间:2015-08-10 03:20:13

标签: marklogic facets

我有以下用例:

有2个文件标有'印度'和马来西亚'像这样:

Document 1 :

<Tags>
      <Tag>
          <termId>India</termId>
          <Score>0.89</Score>
      </Tag>
      <Tag>
          <termId>Malaysia</termId>
          <Score>0.41</Score>
      </Tag>
</Tags>

Document 2 :

<Tags>
     <Tag>
         <termId>India</termId>
         <Score>0.88</Score>
     </Tag>
     <Tag>
         <termId>Malaysia</termId>
         <Score>0.91</Score>
     </Tag>
</Tags>

我需要有标记分数大于0.7的文档,同时我将termIds作为facet,现在当我搜索得分大于0.7的文档时,它返回我的文档但是我还得到印度和马来西亚的数量为2,因为它们存在于两个文档中,但是我不希望马来西亚的数量为1,因为它没有大于0.7的分数。

有没有办法可以指定只返回分数大于0.7的termIds?

我使用以下查询:

 search:search('(India ) AND ( score GE 0.70 )',
 <options xmlns="http://marklogic.com/appservices/search">
    <constraint name="termId">  
         <range type="xs:string" facet="true">                
             <element ns="" name="termId"/>      
         </range> 
    </constraint>
    <constraint name="score" >
        <range type="xs:string" >
            <element ns="" name="Score"/>
        </range>
    </constraint>
 </options>,1)

1 个答案:

答案 0 :(得分:0)

Facets显示匹配文档的所有值。

不要尝试过滤构面节点,而应考虑标记是否可以位于单独的文档中。你能解释为什么标签在同一个文件中吗?也许还有另一种方法来满足这一要求。

希望有帮助,