多面互动

时间:2018-07-14 07:17:07

标签: marklogic faceted-search marklogic-8

我想通过MarkLogic search:search API实现多方面的交互。在MarkLogic jsearch.facets中,有一个选项“ othersWhere”可能有助于构建相同的选项。但是,我想通过search:search实现它。

我可以通过使用search:search API创建自定义构面来实现这一目标吗?

例如,我有一个元素<color>,其值为 green red blue white < / em>。在正常情况下,每当用户单击color:green时,它将隐藏其他选项,但是我想从同一约束中选择多个值。

2 个答案:

答案 0 :(得分:0)

对于可以与search:search一起应用的约束,您可以绝对指定多个值。例如,搜索字符串如下:

color:"Red" OR color:"Green"

..将使用“颜色”约束返回所有红色或绿色的文档。

在我看来,这听起来像是一个UI构建挑战。

答案 1 :(得分:0)

恐怕很难。您可以将search:search分开,分别进行search:parsesearch:resolve,从而给您带来更大的灵活性,但这仍然无法真正帮助您完成自己想做的事情。为此,您需要分别解析每个构面,并且每次都传递经过调整的查询,本质上每次都省略该构面本身的查询部分。这相当麻烦,而且MarkLogic将无法优化后续方面的计算。

作为替代方案,为什么在用户仍单击时不坚持该方面,而仅在用户选择了该方面的所有值时才提交?我过去曾经做过。用户可以针对构面切换到多选模式,在这种情况下,用户可以根据需要选中任意多个值,然后单击按钮以应用结束。

HTH!