我想通过MarkLogic search:search
API实现多方面的交互。在MarkLogic jsearch.facets
中,有一个选项“ othersWhere”可能有助于构建相同的选项。但是,我想通过search:search实现它。
我可以通过使用search:search
API创建自定义构面来实现这一目标吗?
例如,我有一个元素<color>
,其值为 green , red , blue 和 white < / em>。在正常情况下,每当用户单击color:green
时,它将隐藏其他选项,但是我想从同一约束中选择多个值。
答案 0 :(得分:0)
对于可以与search:search一起应用的约束,您可以绝对指定多个值。例如,搜索字符串如下:
color:"Red" OR color:"Green"
..将使用“颜色”约束返回所有红色或绿色的文档。
在我看来,这听起来像是一个UI构建挑战。
答案 1 :(得分:0)
恐怕很难。您可以将search:search
分开,分别进行search:parse
和search:resolve
,从而给您带来更大的灵活性,但这仍然无法真正帮助您完成自己想做的事情。为此,您需要分别解析每个构面,并且每次都传递经过调整的查询,本质上每次都省略该构面本身的查询部分。这相当麻烦,而且MarkLogic将无法优化后续方面的计算。
作为替代方案,为什么在用户仍单击时不坚持该方面,而仅在用户选择了该方面的所有值时才提交?我过去曾经做过。用户可以针对构面切换到多选模式,在这种情况下,用户可以根据需要选中任意多个值,然后单击按钮以应用结束。
HTH!