我有一个场景,需要允许用户选择构面上的多个值。
我有一个方面,称为状态:方面值分别为state1(20),state2(10),state3(30)。
当我选择state1时,我收到20个结果,但是其他2个值不是来自弹性搜索。我需要允许用户选择state2或state3进行操作。
任何建议, 提前致谢。 斯里
答案 0 :(得分:1)
取决于您如何设计应用程序以及相应的Elasticsearch查询。如果最终在查询中将state1作为必须条件,则显然在查询结果的“聚合”部分中不会出现state2和state3。我认为您正在使用相同的查询来获取数据和构面。在这种情况下,这是预期的行为。您需要将聚合查询和结果查询分开,并使用聚合查询结果来显示可供选择的方面。
答案 1 :(得分:0)
如果您在同一字段中进行搜索,我相信您的查询(应使用)将如下所示:
{
"size": 10,
"query": {
"bool": {
"should": {
"terms":
{"states": ["state1", "state2"] }
}
}
}
}
这将包括状态为“ state1”或“ state2”的结果。