关于分面的问题
Questions regarding facets
我有以下用例:
有 2 个文档具有这样的标签 'India' 和 'Malaysia' :
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 的文档,同时我将 termId 作为分面,现在当我搜索得分大于 0.7 的文档时,它 return这两个文件都是我的,但在方面我也得到印度和马来西亚的计数为 2,因为它们在两个文档中都存在,但我只希望马来西亚计数为 1,因为它没有更高的分数然后 0.7.
有没有一种方法可以让我指定 return 只有那些分数大于 0.7 的 termId?
我正在使用以下查询:
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)
Facets 显示匹配文档的所有值。
与其尝试过滤分面节点,不如考虑标签是否可以位于单独的文档中。你能解释为什么标签在同一个文档中吗?也许还有另一种方法可以满足该要求。
希望对您有所帮助,
我有以下用例:
有 2 个文档具有这样的标签 'India' 和 'Malaysia' :
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 的文档,同时我将 termId 作为分面,现在当我搜索得分大于 0.7 的文档时,它 return这两个文件都是我的,但在方面我也得到印度和马来西亚的计数为 2,因为它们在两个文档中都存在,但我只希望马来西亚计数为 1,因为它没有更高的分数然后 0.7.
有没有一种方法可以让我指定 return 只有那些分数大于 0.7 的 termId?
我正在使用以下查询:
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)
Facets 显示匹配文档的所有值。
与其尝试过滤分面节点,不如考虑标签是否可以位于单独的文档中。你能解释为什么标签在同一个文档中吗?也许还有另一种方法可以满足该要求。
希望对您有所帮助,