文档
操作
渲染数据

RenderUserData 操作用于将数据发送到前端,以便在前端执行一系列操作。

RenderUserData 操作具有以下属性

  • action:要执行的操作。这必须设置为 RenderUserData
  • userData:要在搜索结果中渲染的用户数据。这可以是任何 JSON 对象。

以下是 RenderUserData 操作的示例

{
"search_settings": {
  "query_rules": [
    {
      "id": "1",
      "conditions": [
        [
          // conditions here
        ]
      ],
      "actions": [
        {
          "action": "RenderUserData",
          "userData": "{\"title\":\"Star Wars\",\"description\":\"A long time ago in a galaxy far, far away...\",\"image\":\"https://upload.wikimedia.org/wikipedia/en/8/87/StarWarsMoviePoster1977.jpg\"}"
        }
      ]
    }
  ]
}
}

然后,在您的前端,您可以使用 renderUserDataQueryRuleCustomData 组件来渲染用户数据

<QueryRuleCustomData>
  {({ items }: { items: any[] }) =>
    items.map(({ title }) => {
      if (!title) {
        return null;
      }
 
      return (
        <section key={title}>
          <h2>{title}</h2>
          <p>You have typed in movie, show something wild about movies!</p>
        </section>
      );
    })
  }
</QueryRuleCustomData>

用户重定向示例

您还可以使用 RenderUserData 操作将用户重定向到另一个页面。执行此操作的一个示例是存储一个具有您要将用户重定向到的 URL 的 redirect 属性。以下是在带重定向的 RenderUserData 操作的示例

  {
  "search_settings": {
    "query_rules": [
      {
        "id": "1",
        "conditions": [
          [
            // conditions here
          ]
        ],
        "actions": [
          {
            "action": "RenderUserData",
            "userData": "{ \"redirect\": \"https://searchkit.elastic.ac.cn\" }"
          }
        ]
      }
    ]
  }
}

然后,在您的前端,您可以使用 renderUserDataQueryRuleCustomData 组件来重定向用户

<QueryRuleCustomData>
  {({ items }: { items: any[] }) =>
    items.map((item) => {
      if (item.redirect) {
        window.location = item.redirect
      }
      return null;
    })
  }
</QueryRuleCustomData>

Apache 2.0 2024 © Joseph McElroy。
需要帮助?加入 Discord