我有以下用例:
有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)
答案 0 :(得分:0)
Facets显示匹配文档的所有值。
不要尝试过滤构面节点,而应考虑标记是否可以位于单独的文档中。你能解释为什么标签在同一个文件中吗?也许还有另一种方法来满足这一要求。
希望有帮助,